编写一个io.js

我应该在我的package.json中引用io.js吗? 而且还有什么,如果我想要写一个模块是与两个节点和io.js兼容我应该做不同?


Heroku文档说,你可以将“iojs”条目添加到package.json的“引擎”部分。


首先,你应该参考io.js的变更日志,描述自1.0.0版本以来对io.js所做的更改,正如他们所说的那样,它引入了对API的重大修改(与Node.js 0.11.14相比)是分叉时的开发版本)。

由于下面的semver意味着主要版本的bump引入了向后不兼容的更改,这意味着您将不得不在应用程序中处理这些差异,并根据平台使用适当的API调用。

通过更新日志的快速阅读似乎表明,现有API的差异并不显着,但有些地方您需要格外小心。 io.js中有很多新的API,它们本身并不在Node.js上,因此您可能无法使用它们(或者提供一些兼容性层,如果可能,将这些API添加到Node.js中)。

此外,由于ECMAScript 6功能在Node.js 0.10,0.12和io.js中的不同级别上实现,因此您必须选择可以使用哪些功能以保持兼容性,具体取决于您需要/选择的平台和版本支持。

警告 - 个人意见如下

这个问题是为什么我不批准io.js后面的团队分叉并引入向后不兼容的更改并仍然使用Node.js程序包管理器 npm来处理其新平台的依赖关系的确切原因。 你最终只为其中一个编写软件包,或者你使用一些疯狂的决策逻辑来选择如何调用一个函数,因为这个函数的签名在两者之间不同。

最后,开发人员感到沮丧,并离开另一个项目/语言,社区和模块可用性分散,没有人获胜。

我真诚地希望,不管分裂,社区都会选择一个平台,而另一个平台会简单地消亡,无论是哪一个(Node.js或io.js)。 或者,这些项目在某个时候汇合,将两者中最好的一个整合到一个平台中。

链接地址: http://www.djcxy.com/p/83623.html

上一篇: Writing an io.js

下一篇: Mock a MySQL database in Python