我应该在我的io.js中引用package.json吗?如果我想编写一个兼容( Node和io.js )的模块,还需要做什么不同的事情吗?
发布于 2015-02-10 09:31:30
Heroku文档说,您可以在package.json的"engines“部分中添加"iojs”条目。
发布于 2015-02-10 12:16:47
首先,您应该参考io.js变更量g,它描述了自1.0.0版以来对io.js所做的更改,正如他们所说的,该版本引入了对API的主要更改(与Node.js 0.11.14相比,后者是叉子发布时的开发版本)。
由于下面的semver意味着主要版本bump引入了向后不兼容的更改,这意味着您必须在应用程序中处理这些差异,并根据平台使用正确的API调用。
快速阅读变更日志似乎表明,现有API之间的差异并不大,但有些地方您必须格外小心。io.js中有相当多的新API是在Node.js上本机不可用的,因此您可能无法使用它们(或者提供一些兼容性层,如果可能的话,可以将它们添加到Node.js中)。
此外,由于ECMAScript 6特性是在Node.js 0.10、0.12和io.js之间不同级别实现的,因此必须选择可以使用哪些特性才能保持兼容,这取决于需要/选择支持的平台和版本。
警告-个人意见如下
这个问题就是为什么我不赞成io.js背后的团队进行分叉和引入向后不兼容的更改,并且仍然使用Node.js包管理器npm来处理新平台的依赖关系。您要么只为其中一个编写包,要么使用一些疯狂的决策逻辑来选择如何调用函数,因为该函数的签名在两者之间有所不同。
最后,开发人员感到沮丧,选择另一种项目/语言,社区和模块可用性变得支离破碎,没有人获胜。
我真诚地希望,无论这两个平台(Node.js还是io.js)中的哪个平台,社区都会选择一个平台,另一个平台就会消亡,而不是分裂。或者,这些项目在某一时刻会聚在一起,将两者的优点集成到一个平台中。
https://stackoverflow.com/questions/28427408
复制相似问题