Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改包含的文件时,减少吞咽而不是减少建筑_Javascript_Less_Gulp_Gulp Watch_Gulp Less - Fatal编程技术网

Javascript 更改包含的文件时,减少吞咽而不是减少建筑

Javascript 更改包含的文件时,减少吞咽而不是减少建筑,javascript,less,gulp,gulp-watch,gulp-less,Javascript,Less,Gulp,Gulp Watch,Gulp Less,我正在使用以下文件夹结构: css |_ main.css | |_ less |_ main.less |_ sub.less | |_ shared |_ variables.less |_ header.less |_ footer.less 我在我的gulpfile.js中使用了以下内容 Mymain.less包括所有其他less文件的@imports @import "sub.less"; @import "./shared

我正在使用以下文件夹结构:

css
|_ main.css
|
|_ less
   |_ main.less
   |_ sub.less
   |
   |_ shared
      |_ variables.less
      |_ header.less
      |_ footer.less
我在我的gulpfile.js中使用了以下内容

Mymain.less包括所有其他less文件的@imports

@import "sub.less";
@import "./shared/variables.less";
@import "./shared/header.less";
@import "./shared/footer.less";
  • 如果更新了较少的文件(main.LESS除外),则文件main.css不会更改

  • 如果更新了main.less(在任何其他less文件更改后需要),则main.css将更新

如何修改gulpfile.js以更新“main.css”文件 无论更改的文件数是多少


谢谢。

我无法直接重现您的问题,但我想这可能是因为修改的文件是从文件系统文件缓存读取的

Less使用调用读取导入的文件。默认情况下,此调用使用
r
选项打开文件。文档没有明确说明
r
选项是否使用文件系统文件缓存,但文档会告诉您绕过文件系统文件缓存:

“rs”-在同步模式下打开文件进行读取。指示 操作系统以绕过本地文件系统缓存

这主要用于在允许的情况下打开NFS装载上的文件 您需要跳过可能过时的本地缓存。它有一个非常真实的故事 对I/O性能的影响,因此除非需要,否则不要使用此标志

请注意,这不会将fs.open()转换为同步块 呼叫如果这是您想要的,那么您应该使用fs.openSync()

可能的解决办法:

使用
rs
选项打开文件。找到
node\u modules/gulp less/node\u modules/less/lib/less node/file manager.js
文件,并替换为以下代码:

fs.readFile(fullFilename, {encoding: 'utf-8', flag: 'rs'}, function(e, data) {

否则,您可能会想知道为什么修改后的文件仍在文件缓存中,并尝试重新同步文件缓存:

有一个针对您的工作流的插件

这个问题更多的是关于观看,而不是关于吞咽。您能否将手表部分包含在您的
gulpfile
中?
fs.readFile(fullFilename, {encoding: 'utf-8', flag: 'rs'}, function(e, data) {