我跑过sim.js,这是一个用于离散事件模拟的库,我认为在学习node.js时使用它会很有趣。它是一个单独的javascript文件,不依赖于其他库或浏览器。
在我的代码库中包含此内容的最佳做法是什么?将.js保存到磁盘,并将其转换为标准节点模块?
即:
// ---sim.js
var Sim = function () {
this.simTime = 0;
this.entities = [];
}
Sim.Event = function (name) {
this.name = name;
};
// ... functions continue
module.exports = Sim;
// --- main.js
var Sim = require('./sim');
var sim = new Sim();
var trafficLights = [new Sim.Event("North-South Light"),
new Sim.Event("East-West Light")];
还是有一种更简单的方法,不需要修改/模块化原始的js?
答案 0 :(得分:2)
所以是的,如果您只是想让它工作,您可以将其保存到磁盘。看起来Sim是为浏览器全局方法设计的,这意味着它对节点模块必须支持的CommonJS模式一无所知。因此,您可以在上面的module.exports = Sim;
代码段之上添加类似您的内容,这基本上可以让您启动并运行。
如果您想让这个项目支持node / CommonJS,您可以向他们发送补丁。许多在浏览器中开始使用的库必须添加对包管理器的支持,例如requirejs,commonjs,amd,bower,component等。例如,moment库支持许多不同类型的用途,并且你可以看到很多配置和胶水代码,使它能够如此广泛地运作。
我不会太担心“最佳实践”,因为现在整个空间都是一个混乱的混乱,但我指出,moment.js是一个很好的例子,可以在很多不同的环境中运行良好的项目。包装系统。