我有一个 CoffeeScript 项目(称为 jAddressParser),我希望将其变成可重用的模块。不幸的是,我不太熟悉如何为这样的目的模块化 CoffeeScript,同时保持与现有项目的合理互操作性。
有问题的项目解析地址字符串-可以肯定的是,没有短顺序。但是,出于我正在从事的项目的目的,这种策略应该有效,并且其他人可能会从中受益,也许其他人可能会做出一些有用的贡献。每个人都赢了!
所以我所拥有的是在这样的目录中布局的代码:
/
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
我的 Web 项目中。通过适当的调用将 jAddressParser 包含在我的 Web 项目中
requirejs
(即它可以支持 AMD),例如require(['jAddressParser'], -> ...)
由于似乎我必须包含依赖项(lodash、requirejs、require-cs、XRegExp、CoffeeScript),我希望我可以通过将特定版本放在/lib
目录中或使用 git 子模块来做到这一点(尽管子模块似乎有点矫枉过正对于这么小的项目)。
我从未创建过可重用的 CoffeeScript 模块,而且我基本上无法找到关于如何为 web 模块执行相同操作的良好参考(对于仅限 node.js 的项目似乎有一些不错的示例 - 以为我肯定会很想看到更多的列表)。如果您有任何想法或参考资料可以阐明上述提案的可行性,或者您自己如何组织这样的项目,我将不胜感激?