Im с использованием GruntJS с grunt-contrib-coffee. Он отлично работает! С помощью плагина Watch он еще лучше. Но здесь возникает мое сомнение:GruntJS + contrib-coffee: компиляция, но сохранение структуры папок
У меня есть две папки, одна из которых с моими файлами coffeescript и другая с моими (скомпилированными) 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 кли компилирует папку «ядро» и внутри Main.js.
Но когда Im работает 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
So. Есть ли способ скомпилировать с помощью Contrib-кофе и избежать того, чтобы все 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']