繁体   English   中英

包含类似node.js中的CoffeeScript类

[英]Include CoffeeScript classes like in node.js

我只是习惯了CoffeeScript而且我已经遇到了课程。 我希望我的文件结构像节点一样,这样我就可以要求一个包含这样的类的JavaScript文件。

Test = require "test.js"

Test.start()

其中start是Test Class的一种方法。

这可能吗?

这可能吗?

与Node不完全相同。 浏览器环境中没有同步require 然而,您可以尝试使用众多异步库中的一个来做到这一点,看看AMD 最着名的实现是require.js

我发现在浏览器环境中使用CommonJS模块(Node.js使用的模块)的最简单方法是使用Browserify 我个人也更喜欢CommonJS模块定义到AMD的定义,但这只是个人品味。

另外,考虑到为了导出你的类以便require 'test'直接给你类构造函数,你必须将你的类分配给module.exports

# In test.coffee
module.exports = class Test 
  @start = -> console.log 'start!'

然后将该文件编译为test.js ,您就可以使用它了:

Test = require './test'
Test.start()

在Node.js中,这将是Just Work。 在浏览器中,您需要首先使用Browserify(或其他工具)处理文件以使其正常工作(它将创建正确的require函数以及一些exportsmodule.exports变量,以使CommonJS模块正常工作)。

采取一看下摆 (这是由针启发,但有更多的整洁的功能)和browserify

就个人而言,我更喜欢下摆。 你可以用它做这样的事情:

# app/lib/model.coffee

module.exports = class Model
  ...

# app/lib/util.coffee

helper1 = -> ...

helper2 = -> ...

module.export = {helper1, helper2}

# app/index.coffee

Model = require 'lib/model'
{helper1} = require 'lib/util'

# do whatever you want with required stuff
...

Hem负责动态编译CoffeeScript并将所有需要的代码捆绑在一起(它还支持npm模块和任意js libs作为代码的外部依赖项,有关详细信息,请参阅文档)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM