我们希望使用Coffeescript开发一个浏览器(仅限客户端)库,特别是除了纯函数之外,我们倾向于使用Coffeescript的"类"功能.库将相对较大,因此我们想要开始使用定义良好的模块模式,但不是我们想要每个coffeescript"类"的单个咖啡文件.我们不想动态编译咖啡文件,而是作为特定的构建步骤,并且不希望将所有输出的JS连接成一个文件.作为最终要求,我们将使用像Jasmine这样的东西进行测试.
有没有人知道以这种方式开发的一个好的示例库,使用Coffeescript与RequireJS,CurlJS,Browserify等等?我看过Github,有一些例子,但我看不出任何具体的需求.
我尝试了Coffee-Toaster,因为它似乎有一些承诺,可以很容易地定义依赖关系等,但它无法处理Windows路径(旧的\ vs /),所以放弃了,主要是因为它似乎是有点像"光明"方面 - 像RequireJS这样的东西似乎有更好的社区支持.
感谢您的任何帮助,您可以提供.我真的在寻找可行的源代码示例.
我对AMD模块的理解(使用例如RequireJs或curl.js)是:
require()
用于异步加载不同的模块,加载后执行回调fn.
要定义模块,您可以使用单独的脚本 define()
但我已经看到一些模块require()
在其函数定义中使用,例如
define([a, b, c], function(i, ii, iii){
require([d, e, f], function(d, e, f) {
// do some stuff with these require()'d dependancies
})
/* rest of the code for this module */
})
Run Code Online (Sandbox Code Playgroud)
但我发现这令人困惑,因为我认为如果一个模块具有依赖性,那么它们应该通过main define([dependancies], fnDefinition)
函数传递,而不是通过require()
上面的例子来实现.
这背后有理由吗?