错误报告
我为我的项目编写了一个编译工具,它所依赖的更少。
我的项目样式文件夹和文件喜欢
- styles
_utils.less
index.less
而index.less
内容是
<strong i="12">@import</strong> "./utils"
我使用较少的api来编译较少的文件,例如
let less=require('less');
//....
less.render(indexContent,options,(err,result)=>{
console.log(result.css)
});
当我更改_utils.less
内容时,以上代码将自动执行
但是从3.0.x开始,当我更改_utils.less
内容时, result.css
是第一次结果,无论更改多少次。
但是2.7.x可以,当我更改_utils.less
内容时, result.css
也更改了。
听起来类似于https://github.com/stevelacy/gulp-less/issues/283。
我猜在这些“自动监视”的情况下,它是用于编译每个更新的相同的Less对象,对吗? 然后,我想这是在不同的render
调用之间或不类似的操作之间不重置某些导入缓存的事情。
@ seven-phases-max是,使用相同的Less对象编译每次更新。
我不是使用无牙胶的工具,而是直接使用了较少的api。
似乎较少缓存结果并且无法正确更新
因此,在您的情况下,一种快速的解决方法(直到解决错误)将存在:
require('less').render(indexContent,options,(err,result)=>{
console.log(result.css)
});
是的,问题似乎在于此提交中,其中基于参数https://github.com/less/less.js/commit/a48c24c4dd3c13e00a20ece80323768496a96b36#diff -a6b31db4e862654ae597161e441689bb
似乎问题在于此提交...
嗯,说实话,我看不到任何可能影响进口的东西...
在Node环境中,手动清除较少编译的缓存文件:
const less = require('less');
const fileManagers = less.environment && less.environment.fileManagers || [];
fileManagers.forEach(fileManager => {
if (fileManager.contents) {
fileManager.contents = {};
}
});
谢谢@tiodot,到目前为止,它似乎
这可能与为3.0添加的这些行有关。 https://github.com/less/less.js/blob/master/lib/less/tree/mixin-definition.js#L9
尝试删除仅对else语句的if / else,看看问题是否仍然存在。 如果不是,则可能需要删除此优化。 但是,更理想的是在每个新的解析/渲染调用中清除文件管理器或任何内部缓存。
只是检查是否有此问题的任何更新?
gulp-less吸引了很多开发者。
几个小时前再试一次,它似乎工作正常(无补丁)。 还有谁?
"dependencies": {
"browser-sync": "^2.24.4",
"gulp": "^4.0.0",
"gulp-autoprefixer": "^5.0.0",
"gulp-clean-css": "^3.9.4",
"gulp-hb": "^7.0.1",
"gulp-less": "^4.0.0",
"gulp-load-plugins": "^1.5.0",
"gulp-rename": "^1.2.2"
},
"optionalDependencies": {
"less": "^3.0.4"
}
@xinglie从[email protected]升级后,我遇到了同样的问题
@tiodot提供的解决方法似乎对我不起作用(尝试:[email protected]和[email protected])。
同样使用@ seven-phases-max提供的require('less').render()
解决方法并不能解决问题:(
还有更多建议吗? :)
也受此影响:(
嗨,尽管我不确定我做了什么不同的变通办法, @ tiodot现在为我提供了DOES的功能!
我再次尝试了,我肯定在代码中的某个地方犯了一个错误。
(使用[email protected])。
谢谢@tiodot !
谢谢@tiodot
@tiodot @ hawkerboy7 @TigersWay该分支机构可以解决此问题吗? 如果是这样,我会做一个公关-请检查一下-https: //github.com/matthew-dean/less.js/commits/cache-modified
只是检查了2个明显不同的项目,注释了package.json中的@tiodot很棒的补丁,它似乎运行得很好!
"optionalDependencies": {
"less": "github:matthew-dean/less.js#cache-modified"
},
@ matthew-dean为我工作!
@ matthew-dean是的,它已经解决了这个问题! 公关救援!! :)
@tiodot @ hawkerboy7 @TigersWay不错,很高兴,您的速度应该会稍微快一点。使用热缓存(3.x功能)进行编译要少一些,因此最好将其修复;否则,不建议使用它。 否则,我建议将其取出。 会做一个公关。
最有用的评论
在Node环境中,手动清除较少编译的缓存文件: