2012-11-14 36 views
1

我有一個獨特的目錄結構,我需要幫助爲其構建腳本。
這裏是link(略有不同)或目錄結構:我如何使用Node來定製這個構建腳本?

client 
    /extensions 
    /sandbox 
    /widgets 
    /form 
     /collections 
     /models 
     /views 
     /styles 
     custom.css 
     /controllers 
    main.coffee 
server 
    /views 
    /layouts 
    /errors 
    app.coffee 
    config.coffee 

夫婦的事情,我需要:

  • 編譯CoffeeScript的一個手錶的任務轉化爲服務器DIST + 客戶DIST
  • 將所有其他文件複製到它們的嵌套文件夾中,最好還帶有手錶任務

問題:

  • 如果我只是編譯CoffeeScript的,它只是在.coffee文件 複製到.js文件到他們的嵌套目錄但留下的CSS/ IMGS /等裝載require.js。我需要一種方法將 納入-dist目錄
  • /client文件夾中的Main.coffee是require.config,可以與requirejs grunt構建工具一起使用來優化事物。

無論如何,最簡單的解決方案就是我正在尋找的。

+0

怎麼樣的Makefile? – dmck

+0

不反對 - 以前從未做過。由於有很多現成的任務可供使用,我通常會用咕嚕聲來構建......你能提供一些指導嗎?我應該運行的任務? etc. – imrane

+0

你能更具體嗎?有grunt-contrib-copy任務來複制靜態資源和grunt-contrib-requirejs來執行requirejs優化。 grunt-contrib插件的完整列表:https://github.com/gruntjs/grunt-contrib –

回答

1

我結束了使用咕嚕 - 完成以下任務:

  • 乾淨:清除服務器/客戶端建立目錄
  • 手錶:顯示器.coffee文件和兩個生成目錄
  • 複製:複製客戶端/服務器文件以創建目錄,忽略由咖啡任務管理的.coffee文件
  • 咖啡:編譯.coffee文件的.js將它們移動到構建目錄

這是在當前迭代繁重的文件:

grunt.initConfig({ 

clean: { 
    build: ['client-dist', 'server-dist'], 
    release: [] 
}, 

watch: { 
    coffee: { 
    files: ['client/**/*.coffee', 'server/**/*.coffee'], 
    tasks: 'coffee reload' 
    }, 
    reload: { 
    files: ['client/**/*.!(coffee)', 'server/**/*.!(coffee)'], 
    tasks: 'copy reload' 
    } 
}, 

copy: { 
    client: { 
    files: { 
     "client-dist/": "client/**/*.!(coffee)" 
    }, 
    options: { 
     basePath: "client" 
    } 
    }, 
    server: { 
    files: { 
     "server-dist/": "server/**/*.!(coffee)" 
    }, 
    options: { 
     basePath: "server" 
    } 
    } 
}, 

coffee: { 
    compile: { 
    files: { 
     'server-dist/*.js': 'server/**/*.coffee', 
     'client-dist/*.js': 'client/**/*.coffee' 
     } 
    } 
} 

}); 

grunt.loadNpmTasks('grunt-contrib'); 
grunt.loadNpmTasks('grunt-reload'); 

grunt.registerTask('default', ''); 
grunt.registerTask('build', 'clean:build copy coffee watch'); 
相關問題