使用Coffeescript开发节点模块的标准方法?

时间:2012-01-18 16:27:52

标签: node.js coffeescript

如果我想在Coffeescript中编写节点模块,是否有推荐的方法来开发节点模块,但是不想强迫模块的用户需要coffee-script模块?

3 个答案:

答案 0 :(得分:8)

将CoffeeScript代码放在src文件夹中,将已编译的JavaScript代码放在lib文件夹中。

然后在package.json文件中,将main声明为lib文件夹中的js文件。然后,您的包的用户将需要js文件而不是咖啡文件。

你可以以@ TrevorBurnham的repository为例。

答案 1 :(得分:8)

我的git存储库中只有一个src文件夹;一个.gitignore文件,其中包含lib行;和一个空的.npmignore文件。需要空.npmignore个文件,因为如果它不在您的模块上,则会改为使用.gitignore

我刚刚添加了一个Cakefile,其任务是使用srccoffee --compile --output lib/ src/以及pretest任务构建prepublish目录package.json在测试和发布之前构建。

"scripts": { "pretest": "cake build", "prepublish": "cake build", }

此解决方案使我的git存储库保持干净(没有编译代码),但在发布到npm时将我的javascript代码添加到lib。

答案 2 :(得分:1)

我刚刚开始使用CoffeeScript,但我建议如下:

  1. 将您的CoffeeScript代码存储在src/*.coffee
  2. 在NPM将捕获的项目根目录中写一个main.js,让它只是执行类似require('coffee-script'); require('./src/my_lib.coffee')的操作。
  3. 有。你永远不会编译你的代码;这一切都是透明处理的。您不会将已编译的代码检查到git中,也不会将未编译的CoffeeScript与未编译的CoffeeScript一起发布到NPM。

    修改 在咖啡scirpt的最新版本中,您应该require('coffee-script/register');