gpt4 book ai didi

javascript - 为浏览器和 Node 创建 npm 包

转载 作者:行者123 更新时间:2023-11-30 14:44:48 25 4
gpt4 key购买 nike

我正在尝试创建一个可供网络应用程序或其他 Node 模块使用的 npm 包。

如果我只支持浏览器,我会分配给窗口window.myExport = myExport;(除非有更现代的方式我不知道?)。

如果我只支持 Node 模块,我会使用导出,module.exports = myExport;(同样,如果有更好的方法我不知道,请告诉我).

但我想支持两者。目前,我正在做的是

var window, module;
if (window)
window.myExport = myExport;
if (module)
module.exports = myExport;

这看起来很丑陋,但目前有效。什么是更好的方法?这是一个非常轻量级的 Node 模块,所以除非不可避免,否则我不想引入像 webpack 之类的构建器。我已经在使用 babel 创建我的代码的 es5 兼容版本,所以如果 babel 可以为我解决这个问题,那就行得通了。

最佳答案

如果有人已经在使用 npm 来管理他们的依赖关系,那么可以合理地假设他们将使用 webpack 或 browserify 之类的东西来允许他们导入/需要模块。有人从 NPM 下载库并手动将其包含在他们的页面中是不寻常的。我还认为 npm 库将自身添加到窗口对象是一种严重的违规行为。这可能会导致各种问题,尤其是当您的库的不同版本包含在同一页面上时。

真正的问题是 ES 模块导出或 commonJS 导出。其中,我目前更喜欢 CommonJS,因为 ES 模块尚未在 nodejs 中原生实现,因此您必须使用 babel 才能轻松导入它们。

关于javascript - 为浏览器和 Node 创建 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49117403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com