我将GruntJS与grunt-contrib-coffee一起使用。效果很好!在Watch插件的帮助下,它会更好。但这是我的疑问:
我有两个文件夹,一个是我的咖啡脚本文件,另一个是我的(编译的)js 文件。看起来像这样
root_folder
|--- public
|--- libs
|--- ppalmeida <= here are my .js compiled files from src_client coffeescripts
|--- controllers
|--- core
|--- Main.js
|--- models
|--- src_client <= here are my .coffee files
|--- controllers
|--- core
|--- Main.coffee
|--- models
当我使用coffee --output --compile
命令构建时,文件夹结构被保留:Coffeescript cli 编译“核心”文件夹并在 Main.js 中。
但是当我运行 GruntJS 时,它会将所有文件放在同一个文件夹(ppalmeida)中。所以控制器、核心、模型文件都放在同一个文件夹中,我不想要。
这是我的glob_to_multiple
配置:
coffee:
glob_to_multiple:
expand: true,
flatten: true,
cwd: 'src_client/',
src: ['**/*.coffee'],
dest: 'public/ppalmeida/',
ext: '.js'
所以,最后我得到了这样的东西:
root_folder
|--- public
|--- libs
|--- ppalmeida <= here are my .js compiled files from src_client coffeescripts
|--- controllers (empty)
|--- core (empty)
|--- models (empty)
|--- Main.js
|--- ControllerA.js
|--- ControllerB.js
|--- ModelA.js
|--- all_other_js_files_here.js
|--- src_client <= here are my .coffee files
|--- controllers
|--- ControllerA.coffee
|--- ControllerB.coffee
|--- core
|--- Main.coffee
|--- models
|--- ModelA.coffee
|--- ModelA.coffee
所以。有没有办法用 contrib-coffee 编译并避免将所有 js 文件放在同一个文件夹中?
谢谢你们。
PS:我不知道它是否有帮助,但这是我完整的 Gruntfile.coffee:
module.exports = (grunt) ->
# Grunt config object
config =
pkg: grunt.file.readJSON("package.json")
# Grunt must watch the src_client folder for modifications in its files and run coffee task when some file is changed/created
watch:
coffee:
files: 'src_client/**/*.coffee',
tasks: ['coffee']
# Create the 'coffee' task, to compile all *.coffee files to *.js
coffee:
glob_to_multiple:
expand: true,
flatten: true,
cwd: 'src_client/',
src: ['**/*.coffee'],
dest: 'public/ppalmeida/',
ext: '.js'
# Init grunt with config object
grunt.initConfig config
# Load grunt plugins
grunt.loadNpmTasks 'grunt-contrib-coffee'
grunt.loadNpmTasks 'grunt-contrib-watch'
# Register coffee as a default task:
grunt.registerTask 'default', ['coffee']