gpt4 book ai didi

coffeescript - 将 Coffeescript 类和 RequireJS(或 Curljs 或类似)用于客户端浏览器库的示例

转载 作者:行者123 更新时间:2023-12-03 10:38:25 25 4
gpt4 key购买 nike

我们想使用 Coffeescript 开发一个浏览器(仅限客户端)库,特别是,除了纯函数之外,我们更倾向于使用 Coffeescript 的“类”功能。该库将相对较大,因此我们希望从使用定义明确的模块模式开始,但不是到我们希望每个 CoffeeScript “类”都有一个咖啡文件的地步。我们不想即时编译咖啡文件,而是作为特定的构建步骤,并且希望不必将所有输出的 JS 合并到一个文件中。作为最终要求,我们将使用 Jasmine 之类的东西进行测试。

有谁知道以这种方式开发的一个很好的示例库,将 Coffeescript 与 RequireJS、CurlJS、Browserify 等结合使用?我看过 Github,有一些例子,但我看不到任何特定于我需求的东西。

我试过Coffee-Toaster ,因为它似乎在简化定义依赖项等方面有一些 promise ,但它未能处理 Windows 路径(旧的\vs/),所以放弃了,主要是因为它似乎有点“轻”的一面——像 RequireJS 这样的东西似乎背后有更好的社区支持。

感谢您的任何帮助,您可以提供。如果可能的话,我真的在寻找有效的源代码示例。

最佳答案

首先,如果您使用的是 RequireJS,您将很难从定义函数中返回多个“事物”。 RequireJS 使用 AMD(!NOT!CommonJS)格式的“标准”,它不包含用于导出“东西”的 module.exports 对象,而是依赖于返回的东西。

话虽如此,我不确定您在这里寻找什么,但是使用 RequireJS 进行类工作非常容易。像这样的东西:

define ['my/required/module'], (myModule) ->
class MyOtherModule
privateField = 0

constructor: ->
publicMethod: ->

return MyOtherModule

就像任何其他脚本一样,这可以在 require/define 函数中使用。举个例子:
require ['my/other/module'], (MyOtherModule) ->
instance = new MyOtherModule()

我们甚至可以将它与“扩展”一起使用
define ['my/other/module'], (MyOtherModule) ->
class MyThirdModule extends MyOtherModule
...

希望这会有所帮助!

关于coffeescript - 将 Coffeescript 类和 RequireJS(或 Curljs 或类似)用于客户端浏览器库的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com