我正在与TypeScript librabry called Classical.js上的团队合作,我们非常希望此库的核心模块与JavaScript环境无关。在我看来,这意味着它不仅应该跨浏览器正常运行,而且还应该作为node.js项目中的依赖项。
首先,我是否遗漏了我应该注意的测试矩阵中的任何主要JavaScript环境?
不幸的是,团队中没有人开发节点。因此,我们不确定要避免哪些API(显然是DOM )以确保兼容性。在使用仅在浏览器中测试过的代码时,是否存在节点开发人员遇到的一组标准GOTCHA?
我们所做的一个差异(希望)会考虑全局范围的名称,如果内存正确地为我服务,则由节点和窗口中名为 global 的对象表示< / em>在浏览器中。这些是我们正在寻找的那种GOTCHA。
答案 0 :(得分:1)
我认为你在这里有一个重要的问题,那就是目前曝光不足的问题:你想创建一个同构库,你想知道你所依赖的库是同构的。我认为,当同构模块在例如npm中被清楚地标记时,这将是一件好事。
这里有一个很好的博客:http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/
基本上,同构库应该只使用JavaScript本身构建的功能(ES3,ES5,ES6,...)。
boolean
的变量。在这些情况下,我认为这些引擎应该得到更好的合规性,而不是你必须解决他们的错误/限制。无论如何,有一种简单的方法来测试你的库是否是同构的:尝试在node.js和5个最大的浏览器中运行它:)