因爲我們需要Yeoman編譯出SCSS和CoffeScript文件,所以我最終編譯了dist
到src
。在這裏無聊的是yeoman server
當你yeoman build
創建dist
目錄時無法運行。另外笨拙是當你再次yeoman server
,它清理了dist
目錄。
我計劃在創造發生器觸發一個自耕農發電機工作,還可以添加模仿Rakefile
任務時,我們在測試,並與辛納屈(例如yeoman simulator
,yeoman device
,yeoman testflight
)發展我創建了一些繁重的任務。
編輯:我現在已經直接向我的gruntfile.js
添加了一些任務。我添加了grunt-contrib-copy
並添加了以下子任務。
copy: {
app: {
files: {
"src/": "app/**", // core app files
},
},
compass: {
files: {
"src/styles/": "temp/styles/**", // drop in the compiled coffeescript
}
},
coffee: {
files: {
"src/scripts/": "temp/scripts/**" // drop in the compiled scss
}
}
},
我加了這些任務到合適的手錶命令並且加入了全新的手錶看app
目錄。
watch: {
coffee: {
files: 'app/scripts/**/*.coffee',
tasks: 'coffee copy:coffee reload'
},
compass: {
files: [
'app/styles/**/*.{scss,sass}'
],
tasks: 'compass copy:compass reload'
},
app: {
files: [
'app/**/*.{html,png,json,css,js}'
],
tasks: 'copy:app'
},
}
現在yeoman server
,它調用yeoman watch
,保持src
最新的。
我還帶了grunt-shell
做下面的事情。
shell: {
forge_build: {
command: 'forge build ios 2>&1 | tee output',
stdout: true
},
forge_run_device: {
command: 'forge run ios --ios.device device',
stdout: true
},
forge_run: {
command: 'forge run ios',
stdout: true
}
}
,並創建一些任務,如:
grunt.registerTask("sim", 'copy shell:forge_build shell:forge_run');
grunt.registerTask("device", 'copy shell:forge_build shell:forge_run_device');
我不是這完全高興,但它讓我保持運行yeoman server
拖放到控制檯別處並運行yeoman device
要拿出來的裝置。它也保持src
目錄在一個可以檢入的地方。
最後我會將它移動到yeoman插件並添加一些更具體的構建任務來清理適當目標的src目錄(例如iOS,Android)保持較小的目錄大小。
編輯:我創建了grunt-forge
以幫助從Yeoman內部運行forge
。我也有一段關於創建a more terse output for `forge的博客。