【发布时间】:2014-10-22 16:12:55
【问题描述】:
我正在与TypeScript librabry called Classical.js 的一个团队合作,我们非常希望这个库的核心模块与 JavaScript 环境无关。在我看来,这意味着它不仅应该跨浏览器正常运行,而且还应该作为 node.js 项目中的依赖项。
首先,我是否遗漏了我应该注意的测试矩阵中的任何主要 JavaScript 环境?
不幸的是,团队中没有人使用 node 进行开发。因此,我们不太确定要避免哪些 API(显然是 DOM)以确保兼容性。节点开发人员在使用仅在浏览器中测试过的代码时是否会遇到一组标准的 GOTCHA?
我们所做的一个差异(希望)解释了全局范围的名称,如果我没记错的话,它由节点和 windowglobal 的对象表示/em> 在浏览器中。这些就是我们正在寻找的 GOTCHA。
【问题讨论】:
-
如果你先为 node 开发,然后想移植到浏览器,你可以看看browserify。
-
我所知道的大多数服务器+客户端开发人员实际上都在反其道而行之——他们几乎完全是为节点开发的,然后使用他们在客户端需要的节点 API 填充浏览器.也就是说,这对于一个问题来说有点宽泛 - 最好在 chat 中解决一些问题并在此处处理更具体的问题。
-
我对否决票感到沮丧。我非常感谢一位经验丰富的节点开发人员解释两种 JavaScript 环境之间差异的大小。投反对票使这种可能性大大降低
-
@Brad 我认为 Doug 的问题不是关于 如何 创建这样的库,而是创建同构库时要考虑什么。如果你的 node.js 库严重依赖
fs,那么它就无法在你熟悉的浏览器中工作。依赖 DOM 的浏览器库也一样:在 node.js 中不可用。 -
@DougR 我根本没有批评你......只是提供建议和我自己的工作流程的一个例子。如果您对我的赞扬的解读被视为批评,我深表歉意。我也没有对你投反对票。 (实际上,我对你投了赞成票,而你对不发表评论的评论投了反对票。)
标签: javascript node.js typescript compatibility