Компилировать и объединять файлы coffeescript
У меня есть следующая структура:
/lib
/ myfile.js.cofee
/ secondfile.js
/src
и я хотел бы собрать их в
/lib
/ myfile.js.cofee
/ secondfile.js
/src
/ awesomefile.min.js
Я читал о Cakefiles, но я не уверен, как именно это сделать.
Спасибо майк
2 ответа
Если вы используете что-то на основе connect (например, экспресс), я бы порекомендовал использовать connect-assets. Если нет, то хрюк может быть хорошей ставкой, как было предложено ранее. Если вы хотите сделать это самостоятельно, используя Cakefile
Вот один из подходов, который вы можете использовать:
Обратите внимание, что соглашение заключается в сборке из src в lib (что противоположно тому, что вы указали в вопросе). Я буду использовать это соглашение ниже, но вы можете легко переключить его обратно, если это необходимо.
$ npm install snockets
поместите следующее в src/awesomefile.coffee
:
#= require secondfile.js
#= require myfile.js.coffee
создать Cakefile
со следующим:
fs = require 'fs'
Snockets = require 'snockets'
NAME = 'awesomefile'
INPUT_FILE = "src/#{NAME}.coffee"
OUTPUT_FILE = "lib/#{NAME}.min.js"
task 'build', 'Build lib/ from src/', ->
snockets = new Snockets()
js = snockets.getConcatenation INPUT_FILE, async: false, minify: true
fs.writeFileSync OUTPUT_FILE, js
task 'clean', "remove #{OUTPUT_FILE}", ->
fs.unlinkSync OUTPUT_FILE
Теперь вы можете просто сделать:
$ cake build
и это создаст lib/awesomefile.min.js
,
Вы можете иметь файлы в src
отслеживать их собственные зависимости, или вы можете перечислить порядок, который будет включен в один файл, как я сделал выше. Для получения дополнительной информации вы можете проверить репозиторий Snockets. Также обратите внимание, что глава главы "Маленькая книга о CoffeeScript", посвященная компиляции, является хорошим источником для изучения файлов тортов.
Не может быть точный ответ, который вы ожидали.
Grunt.js на www.gruntjs.com - очень полезный buildtool и, конечно, включает в себя множество вещей, которые вам нужно делать ежедневно с веб-проектом.