2013-08-27 61 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

回答