Есть ли рекомендуемый способ разработки модуля 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');