Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
grunt contrib sass导致grunt重新加载自身_Sass_Gruntjs_Vagrant_Grunt Contrib Watch - Fatal编程技术网

grunt contrib sass导致grunt重新加载自身

grunt contrib sass导致grunt重新加载自身,sass,gruntjs,vagrant,grunt-contrib-watch,Sass,Gruntjs,Vagrant,Grunt Contrib Watch,我已经设置了一个流浪者箱(precise32)来运行通常的咕噜声,但它花费的时间太长了 Running "watch" task Waiting...OK >> File "../../home/vagrant/app/wp-content/themes/testcss/_vars.scss" changed. Running "sass:dist" (sass) task File "/home/vagrant/app/wp-content/themes/test/css/sty

我已经设置了一个流浪者箱(precise32)来运行通常的咕噜声,但它花费的时间太长了

Running "watch" task
Waiting...OK
>> File "../../home/vagrant/app/wp-content/themes/testcss/_vars.scss" changed.

Running "sass:dist" (sass) task
File "/home/vagrant/app/wp-content/themes/test/css/styles.css" created.

Done, without errors.
Completed in 40.392s at Mon Dec 02 2013 11:34:02 GMT+0000 (UTC) - Waiting...
OK
>> File "../../home/vagrant/app/wp-content/themes/test/css/styles.css" changed.

Completed in 0.000s at Mon Dec 02 2013 11:34:02 GMT+0000 (UTC) - Waiting...
我在虚拟机中的共享文件夹和本机文件夹上尝试了此操作,没有任何更改。我正在使用grunt contrib sass插件,虽然我也尝试过grunt sass,但它也需要类似的时间。watch事件会很快触发,但是VM会消耗所有的空闲CPU利用率,直到CSS编译完成

手动运行sass大约需要2秒钟

你知道接下来该去哪里吗

package.json

{
  "name": "www",
  "version": "0.0.0",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.2",
    "grunt-autoprefixer": "~0.4.0",
    "grunt-concurrent": "~0.4.1",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-coffee": "~0.7.0",
    "grunt-contrib-compass": "~0.6.0",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-connect": "~0.5.0",
    "grunt-contrib-copy": "~0.4.1",
    "grunt-contrib-cssmin": "~0.7.0",
    "grunt-contrib-htmlmin": "~0.1.3",
    "grunt-contrib-imagemin": "~0.3.0",
    "grunt-contrib-jshint": "~0.7.1",
    "grunt-contrib-uglify": "~0.2.0",
    "grunt-contrib-watch": "~0.5.2",
    "grunt-google-cdn": "~0.2.0",
    "grunt-newer": "~0.5.4",
    "grunt-ngmin": "~0.0.2",
    "grunt-rev": "~0.1.0",
    "grunt-svgmin": "~0.2.0",
    "grunt-usemin": "~2.0.0",
    "jshint-stylish": "~0.1.3",
    "load-grunt-tasks": "~0.2.0",
    "time-grunt": "~0.2.1",
    "karma-ng-scenario": "~0.1.0",
    "grunt-karma": "~0.6.2",
    "karma-chrome-launcher": "~0.1.0",
    "karma-script-launcher": "~0.1.0",
    "karma-firefox-launcher": "~0.1.0",
    "karma-html2js-preprocessor": "~0.1.0",
    "karma-jasmine": "~0.1.3",
    "requirejs": "~2.1.9",
    "karma-requirejs": "~0.2.0",
    "karma-coffee-preprocessor": "~0.1.0",
    "karma-phantomjs-launcher": "~0.1.0",
    "karma": "~0.10.5",
    "karma-ng-html2js-preprocessor": "~0.1.0",
    "grunt-contrib-sass": "~0.5.1",
    "grunt-php": "~0.3.0"
  },
  "engines": {
    "node": ">=0.8.0"
  },
  "scripts": {
    "test": "grunt test"
  }
}
编辑:


我大致找到了问题所在。就是说,每当我的grint contrib sass任务从grunt contrib watch触发时,它实际上会重新加载grunt的所有模块。我看不出它为什么要这样做,也看不出为什么有必要这样做。为了反映这一点,我已经更改了问题标题。

除非您给vagrant提供了大量cpu(我相信它通常使用1个cpu内核),否则我希望grunt的运行速度比您的主机慢。如果您没有使用
nfs
,则下一个可疑问题是IO速度慢

我们在vagrant中也使用grunt,但只使用少量软件包(主要是
contrib
插件),在iMac上,在vagrant中大约需要2秒钟,因此您的问题可能确实是IO速度慢或某些软件包必须执行大量文件操作

如果将
grunt-watch
单独隔离到sass插件,那么与手动运行
grunt-sass
相比,它所花费的时间是否相同?在你的主机上运行怎么样


另一个要考虑的问题是尽量不要看由Grutter生成的文件,如果一个咕咕任务触发另一个文件,你可能会遇到奇怪的问题。

< P>我发现这似乎是由于SaWON选项。将此设置为false将停止整个重新加载


我现在遇到的问题是,当sass编译器任务运行时,手表会重新加载,因此被监视的css文件上的livereload并不总是工作。

我们在使用此问题上取得了平庸的成功。我们所做的是在
grunfile.js
中用
jit-grunt
替换
load-grunt任务。
grunt-service
的执行时间从20-30秒下降到不到4秒。瓶颈现在可能是
compass:server
加载,这与慢速
共享文件夹有关


仍然在没有grunt的情况下执行Karma测试运行(仅使用
Karma cli
)--这样做速度更快。

感谢您的指导。我一直在研究CPU内核和NFS选项,但它们没有什么不同。实际上,我已经将问题归结为模块的数量,因为启动grunt需要一段时间,但是当watch看到一个文件更改时,整个grunt会重新加载,这当然意味着它会再次重新加载所有模块。