如果我想在Coffeescript中编写节点模块,是否有推荐的方法来开发节点模块,但是不想强迫模块的用户需要coffee-script
模块?
答案 0 :(得分:8)
将CoffeeScript代码放在src
文件夹中,将已编译的JavaScript代码放在lib
文件夹中。
然后在package.json
文件中,将main
声明为lib
文件夹中的js文件。然后,您的包的用户将需要js文件而不是咖啡文件。
你可以以@ TrevorBurnham的repository为例。
答案 1 :(得分:8)
我的git存储库中只有一个src
文件夹;一个.gitignore
文件,其中包含lib
行;和一个空的.npmignore
文件。需要空.npmignore
个文件,因为如果它不在您的模块上,则会改为使用.gitignore
。
我刚刚添加了一个Cakefile
,其任务是使用src
和coffee --compile --output lib/ src/
以及pretest
任务构建prepublish
目录package.json
在测试和发布之前构建。
"scripts": {
"pretest": "cake build",
"prepublish": "cake build",
}
此解决方案使我的git存储库保持干净(没有编译代码),但在发布到npm时将我的javascript代码添加到lib。
答案 2 :(得分:1)
我刚刚开始使用CoffeeScript,但我建议如下:
src/*.coffee
,main.js
,让它只是执行类似require('coffee-script'); require('./src/my_lib.coffee')
的操作。有。你永远不会编译你的代码;这一切都是透明处理的。您不会将已编译的代码检查到git中,也不会将未编译的CoffeeScript与未编译的CoffeeScript一起发布到NPM。
修改强>
在咖啡scirpt的最新版本中,您应该require('coffee-script/register');