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

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

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

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

您可以以@ TrevorBurnham的存储库为例。

我结束了我的git仓库上只有一个src文件夹; 一个.gitignore文件,里面有一行lib文件; 和一个空的.npmignore文件。 空的.npmignore文件是需要的,因为如果它不在你的模块上,你的.gitignore被用来代替。

我刚刚添加了一个Cakefile和一个任务来构build我的src目录,使用coffee --compile --output lib/ src/和一个pretestprepublish任务package.json在testing和发布之前构build。

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

这个解决scheme保持我的git仓库干净(没有编译代码),但是当我发布到npm时,我的javascript代码添加到lib中。

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

  1. 将您的CoffeeScript代码存储在src/*.coffee 。coffee中,
  2. 写一个main.js在项目的NPM将捕获的根,并且只需要做一些类似于require('coffee-script'); require('./src/my_lib.coffee') require('coffee-script'); require('./src/my_lib.coffee')

那里。 你永远不会编译你的代码; 这一切都透明处理。 您不检查编译的代码到git中,也不会将未编译的CoffeeScript与未编译的CoffeeScript一起发布为NPM。

编辑:在更新的版本中,您应该require('coffee-script/register');