我遇到了sim.js ,一个用于离散事件模拟的库,我认为在学习 node.js 时使用它会很有趣。它是一个 javascript 文件,不依赖于其他库或浏览器。
将它包含在我的代码库中的最佳做法是什么?将 .js 保存到磁盘,并将其转换为标准 Node 模块?
即:
// ---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?
最佳答案
所以,是的,如果您只想完成这项工作,您可以将其保存到磁盘。看起来 Sim 是为浏览器全局方法设计的,这意味着它对 Node 模块必须支持的 CommonJS 模式一无所知。所以你可以在上面的 module.exports = Sim;
片段中添加你喜欢的那些,这基本上会让你启动并运行。
如果你想让这个项目支持 node/CommonJS,你可以给他们发送一个补丁。许多在浏览器中开始使用的库必须添加对包管理器的支持,例如 requirejs、commonjs、amd、bower、component 等。例如,moment库支持许多不同类型的使用,您可以看到许多配置和粘合代码,以使其如此广泛地工作。
我不会太担心“最佳实践”,因为整个空间现在一团糟,但我会指出 moment.js 是一个很好的项目示例,它可以在许多不同的环境中运行良好,并且包装系统。
关于javascript - 将外部 JavaScript 库转换为 Node.js 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171152/