Есть ли рекомендуемый способ разработки модуля node, если я хочу записать его в Coffeescript, но не хочу, чтобы заставить пользователей модуля требовать модуль coffee-script
?
Стандартный способ разработки модуля node с использованием Coffeescript?
Ответ 1
Поместите коды CoffeeScript в папку src
и скомпилированные JavaScript-коды в папку lib
.
Затем в вашем файле package.json
объявите main
как файл js в папке lib
. Тогда пользователям вашего пакета будет нужен файл js вместо файла кофе.
В качестве примера вы можете взять @TrevorBurnham репозиторий.
Ответ 2
Я закончил с папкой src
в моем репозитории git; a .gitignore
файл с линией для lib
; и пустой файл .npmignore
. Пустой файл .npmignore
необходим, потому что если он не в вашем модуле, вместо этого используется .gitignore
.
Я только что добавил Cakefile
с задачей создать мой каталог src
, используя coffee --compile --output lib/ src/
и pretest
и prepublish
задачу до package.json
для сборки перед тестированием и публикацией.
"scripts": {
"pretest": "cake build",
"prepublish": "cake build",
}
Это решение сохраняет мой репозиторий git чистым (без скомпилированного кода), но добавляет мой javascript-код в lib при публикации на npm.
Ответ 3
Я только начинаю с CoffeeScript, но я бы предложил следующее:
- Сохраните код CoffeeScript в
src/*.coffee
, - Напишите
main.js
в корне проекта, который будет зависеть от NPM, и попробуйте сделать что-то вродеrequire('coffee-script'); require('./src/my_lib.coffee')
.
Там. Вы никогда не компилируете свой код; все это обрабатывалось прозрачно. Вы не проверяете скомпилированный код на git, и не публикуете лишний скомпилированный JavaScript вместе с несжатым CoffeeScript для NPM.
Edit:
В более поздних версиях кофейной зачистки вы должны require('coffee-script/register');