2013-08-27 63 views
0

我的目标是能够将我的项目构建到两个单独的构建文件夹,每个文件夹都有其自己的Grunt任务。Grunt/Yeoman多个Gruntfile.js文件

我注意到grunt-cli--gruntfile选项,它允许你指定另一个Gruntfile使用。到目前为止,我有一个Gruntfile.js完美工作(从Yeoman附近库存)。另外,我还坐着另一个Gruntfile2.js

Gruntfile.js

var yeomanConfig = { 
    app: 'app', 
    dist: '../www_browser' 
}; 

Gruntfile2.js

var yeomanConfig = { 
    app: 'app', 
    dist: '../www' 
}; 

grunt build意味着运行Gruntfile.js,并不会如此完美。

grunt build --gruntfile Gruntfile2.js是为了运行Gruntfile2.js,并且这样做有一些打嗝。 (应该构建以../www文件夹不夹../www_browser

的--gruntfile指令建立在正确的文件夹,几乎每一个任务除了咕噜-usemingunt-的contrib-htmlmin。我知道这是因为此输出这里的控制台:

Running "usemin:css" (usemin) task 
Processing as CSS - ../www_browser/styles/22f60055.main.css 

Running "concurrent:dist" (concurrent) task 

Running "htmlmin:dist" (htmlmin) task 
File ../www_browser/404.html created. 
File ../www_browser/index.html created. 

你会在控制台输出注意到../www_browser,在这里。每个其他任务运行在预期的文件夹中。

这是一个usemin缓存的东西?咕噜缓存的东西?或者,不管--gruntfile Gruntfile2.js指令如何,只需从默认的Gruntfile.js运行一些任务?

我已经放弃尝试从一个单一的Gruntfile现在做多个目标。 Yeoman的Gruntfile.js中有太多的依赖关系,它们还不支持多个构建目标,我花了12个小时无法使用这种方法。

版本信息

$: grunt --version 
grunt-cli v0.1.9 
grunt v0.4.1 

$: npm --version 
1.2.25 

$: yo --version 
1.0.3 

的package.json

{ 
    "name": "myapp", 
    "version": "0.0.0", 
    "dependencies": {}, 
    "devDependencies": { 
    "grunt": "~0.4.1", 
    "grunt-contrib-copy": "~0.4.1", 
    "grunt-contrib-concat": "~0.1.3", 
    "grunt-contrib-coffee": "~0.6.5", 
    "grunt-contrib-uglify": "~0.2.0", 
    "grunt-contrib-compass": "~0.2.0", 
    "grunt-contrib-jshint": "~0.4.1", 
    "grunt-contrib-cssmin": "~0.6.0", 
    "grunt-contrib-connect": "~0.2.0", 
    "grunt-contrib-clean": "~0.4.0", 
    "grunt-contrib-htmlmin": "~0.1.3", 
    "grunt-bower-requirejs": "~0.4.1", 
    "grunt-contrib-requirejs": "~0.4.0", 
    "grunt-contrib-imagemin": "~0.1.3", 
    "grunt-contrib-watch": "~0.4.0", 
    "grunt-rev": "~0.1.0", 
    "grunt-usemin": "~0.1.10", 
    "grunt-mocha": "~0.3.0", 
    "grunt-open": "~0.2.0", 
    "grunt-svgmin": "~0.1.0", 
    "grunt-concurrent": "~0.1.0", 
    "matchdep": "~0.1.1", 
    "connect-livereload": "~0.2.0" 
    }, 
    "engines": { 
    "node": ">=0.8.0" 
    } 
} 
+1

它不应该读取默认的Gruntfile。作为一个实验,你有没有尝试删除,或者在运行'grunt build --gruntfile Gruntfile2.js'之前将默认的Gruntfile.js重命名为随机的东西? – badsyntax

+0

好的建议。这一个将会让我失望另一个兔子洞。现在得到错误的并发:dist任务警告:无法找到有效的Gruntfile。请参阅 的入门指南有关如何配置grunt的详细信息:http://gruntjs.com/getting-started 致命错误:无法找到Gruntfile。 – Jarrod

+0

这里记录在这里:https://github.com/gruntjs/grunt-cli/issues/26 虽然,在恢复到grunt-cli v0.1.8之后,我收到了同样的错误。 – Jarrod

回答