像node.js一样包含CoffeeScript类
Include CoffeeScript classes like in node.js
我刚刚开始使用CoffeeScript,我已经被类困住了。我想让我的文件结构像在节点,这样我就可以要求一个JavaScript文件包含这样的类。
Test = require "test.js"
Test.start()
其中start是Test类的一个方法。
这可能吗?
这可能吗?
与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中,这将只是工作。在浏览器中,您需要首先使用Browserify(或其他工具)处理文件以使其工作(它将创建适当的require
函数以及一些exports
和module.exports
变量,以便CommonJS模块正确工作)。
看看stitch, hem(灵感来自stitch,但有更多整洁的功能)和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库作为代码的外部依赖项,更多细节请参阅文档)。
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 货币代码为欧元-金额的格式不应包含小数
- 如何包含特定于每个视图angularjs的javascript文件
- 我如何修复包含在captcha的addthis中的错误
- 正在注入包含JS的HTML
- Json数据包含日期和时间格式
- Angular js-返回一个包含类似
- jQuery/JS包含运算符或类似运算符
- 如果href包含X,请更改href
- JavaScript数组包含一个值
- 带有填充属性的SVG矩形显示在包含元素的上方插入框阴影
- 在Meteor项目中安装并包含npm模块后出错
- 传递包含'%的参数'在URL中
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- 如何首先设置样式<td>表中包含在窗体中的元素
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 每天用javascript包含不同的php文件
- 使用AngularJS像IFrame一样直接包含HTML模板是最好的方法吗?
- 像node.js一样包含CoffeeScript类
- 我正在 angularjs 中设计一个表格,其中包含每列的多文本过滤选项,就像在 excel 中一样