使用Coffeescript开发节点模块的标准方法?
如果我想用Coffeescript编写节点模块,但是不希望强制模块的用户需要coffee-script
模块,是否有推荐的方法来开发节点模块?
将CoffeeScript代码放在src
文件夹中,并将编译后的JavaScript代码放在lib
文件夹中。
然后在你的package.json
文件中,声明main
是lib
文件夹中的js文件。 然后你的包的用户将需要js文件,而不是咖啡文件。
您可以以@ TrevorBurnham的存储库为例。
我结束了我的git仓库上只有一个src
文件夹; 一个.gitignore
文件,里面有一行lib
文件; 和一个空的.npmignore
文件。 空的.npmignore
文件是需要的,因为如果它不在你的模块上,你的.gitignore
被用来代替。
我刚刚添加了一个Cakefile
和一个任务来构build我的src
目录,使用coffee --compile --output lib/ src/
和一个pretest
和prepublish
任务package.json
在testing和发布之前构build。
"scripts": { "pretest": "cake build", "prepublish": "cake build", }
这个解决scheme保持我的git仓库干净(没有编译代码),但是当我发布到npm时,我的javascript代码添加到lib中。
我刚刚开始使用CoffeeScript,但我会build议如下:
- 将您的CoffeeScript代码存储在
src/*.coffee
。coffee中, - 写一个
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');
- MongoDB:$和操作符不能使用Node.JS驱动程序进行批量更新
- 指定由节点中的hubot创build的GET请求的callback函数
- 如何debuggingSyntaxError:意外的INDENT错误?
- Socket.io在每个发射失败
- 带请求范围的coffeescript
- Node.js和sqlite,SQLITE_RANGE:绑定或列索引超出范围
- 如何将parameter passing给nodemon(或node-supervisor)中的可执行文件?
- Node.js readline缺less文件的最后一行?
- 在Node.js上编译CoffeeScript文件,从connect-assets开始