grunt contrib sass导致grunt重新加载自身
我已经设置了一个流浪者箱(precise32)来运行通常的咕噜声,但它花费的时间太长了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
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会重新加载,这当然意味着它会再次重新加载所有模块。