我有a CoffeeScript project (called jAddressParser)我希望变成可重复使用的模块。不幸的是,我并不太熟悉如何为了这样的目的模块化CoffeeScript,同时保持与现有项目的合理互操作性。
project in question parses address strings - no short order,确定无疑。然而,出于我正在研究的项目的目的,这个策略应该有效,并且其他人可能从中受益,也许其他人可能会做出一些有用的贡献。每个人都赢了!
所以我所拥有的代码就是这样的目录:
/
README.md
LICENSE
package.json
/src
main.js
main.coffee
canada.coffee
iso3166.js
/test
/build
在理想的世界中,我的工作流程将是这样的:
从命令行测试上面的javascript。我认为Node.js是最合适的方式。
将/src
中的文件编译为/build/jAddressParser.js
文件。我认为r.js对此很有用。
完成所有操作后,将jAddressParser.js
从/build
复制到我的网络项目。
在我的网络项目中包含jAddressParser并进行相应的requirejs
调用(即,它可以支持AMD),例如require(['jAddressParser'], -> ...)
因为看起来我必须包含依赖项(lodash,requirejs,require-cs,XRegExp,CoffeeScript),我希望我会通过在/lib
目录中放置特定版本或使用git子模块来实现这一点(尽管对于这样一个小项目来说,子模块看起来有点过分了。)
我从来没有创建过可重复使用的CoffeeScript模块,而且我基本上无法找到关于如何为web模块执行相同操作的良好参考(对于只有node.js的项目,似乎有一些不错的示例 - 以为我一定会喜欢看到更多的清单)。我会非常感谢任何有关上述提案可行性的想法或参考,或者你自己如何组织这样一个项目?