Стандартный способ разработки модуля узла с использованием Coffeescript? - PullRequest
13 голосов
/ 18 января 2012

Есть ли рекомендуемый способ разработки модуля узла, если я хочу написать его в Coffeescript, но не хочу заставлять пользователей модуля требовать модуль coffee-script?

Ответы [ 3 ]

8 голосов
/ 20 января 2012

Я закончил только с папкой src в моем git-репозитории; файл .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.

8 голосов
/ 18 января 2012

Поместите ваши коды CoffeeScript в папку src, а скомпилированные коды JavaScript в папку lib.

Затем в вашем файле package.json объявите main файлом js в папке lib.Тогда пользователям вашей посылки потребуется файл js вместо файла coffee.

В качестве примера вы можете взять репозиторий @ TrevorBurnham .

1 голос
/ 31 января 2013

Я только начинаю работать с CoffeeScript, но я бы предложил следующее:

  1. Сохраните код CoffeeScript в src/*.coffee,
  2. Напишите main.js в корне проекта, который будет ловить NPM, и просто сделайте что-то вроде require('coffee-script'); require('./src/my_lib.coffee').

Там. Вы никогда, никогда не компилируете свой код; все решается прозрачно. Вы не проверяете скомпилированный код в git и не публикуете лишний скомпилированный JavaScript вместе с некомпилированным CoffeeScript для NPM.

Edit: В более поздних версиях кофе-scirpt, вы должны require('coffee-script/register');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...