【发布时间】:2014-01-15 13:51:11
【问题描述】:
我有一个使用 yeoman 构建的 Angular 项目,与 Rails api 后端对话。
一切正常,除了繁重的任务非常慢。
当我运行grunt server --verbose:
Execution Time (2014-01-15 13:37:55 UTC)
loading tasks 14.3s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 26%
server 1ms 0%
preprocess:multifile 11ms 0%
clean:server 13ms 0%
concurrent:server 34.3s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 63%
autoprefixer 1ms 0%
autoprefixer:dist 369ms ▇ 1%
connect:livereload 17ms 0%
watch 5.8s ▇▇▇▇▇▇▇▇▇ 11%
Total 54.8s
我的一些 Gruntfile:
'use strict';
module.exports = function (grunt) {
require('time-grunt')(grunt);
require('load-grunt-tasks')(grunt);
require('time-grunt')(grunt);
grunt.initConfig({
...
});
grunt.loadNpmTasks('grunt-preprocess');
grunt.registerTask('server', function (target) {
if (target === 'dist') {
return grunt.task.run(['build', 'connect:dist:keepalive']);
}
grunt.task.run([
'preprocess:multifile',
'clean:server',
'concurrent:server',
'autoprefixer',
'connect:livereload',
'watch'
]);
});
grunt.registerTask('test', [
'clean:server',
'concurrent:test',
'autoprefixer',
'connect:test'
//'karma'
]);
grunt.registerTask('build', [
'preprocess:multifile',
'clean:dist',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'copy:dist',
'cdnify',
'ngmin',
'cssmin',
'uglify',
'rev',
'usemin'
]);
grunt.registerTask('default', [
'jshint',
'test',
'build'
]);
};
项目规模:
vagrant@vm ~code/myapp/app/scripts
$> find -name "*.js" | xargs cat | wc -l
10209
我在 MacOS 10.8 上运行,配备 i7 处理器、16GB 内存、SSD... 需要这么长时间是正常的吗?是什么让 grunt 任务(尤其是“加载任务”)如此缓慢?
注意:我在 vagrant 机器中 ssh,并从那里运行 grunt 命令。如果我在本机系统上运行 grunt 命令,它会快得多(loading tasks 需要 1.6 秒而不是 14.3 秒)。
所以共享文件系统可能是个问题。但是为什么...
【问题讨论】:
-
我也遇到了同样的问题。似乎 imagemin 需要永远(
grunt serve --verbose --debug暴露了这一点)。你想出解决方案了吗?
标签: ruby-on-rails angularjs gruntjs yeoman