gpt4 book ai didi

javascript - 如何在没有依赖关系的情况下捆绑模块以发布 npm 包

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:13 26 4
gpt4 key购买 nike

最近开发了一个React组件,想发布。

在这个包中,

"dependencies": {
"react": "^0.14.6",
"react-dom": "^0.14.6",
"react-timer-mixin": "^0.13.3"
}

当我通过 webpack 命令构建包时,我将得到一个包含 react、react-dom 和 react-timer-mixin 的包。
这种做法似乎是错误的......

因此,我的问题是如何在没有发布依赖的情况下构建包。

*我认为分离主包和依赖项的 chuck-vendor 方法适用于多个包文件。但我的要求是构建库。

最佳答案

如果你正在构建一个库,你需要将这些依赖项注册为 externals .

总而言之,只需在您的 webpack 配置中添加 externals 属性并将其设置为包含要排除的模块的名称(字符串)的数组。

更复杂的情况可能需要您指定如何在导入系统的功能中导入您的依赖项。您可以使用对象实现此目的。

Here is the official example :

module.exports = {
output: {
libraryTarget: "umd"
},
externals: [
"add",
{
"subtract": {
root: "subtract",
commonjs2: "./subtract",
commonjs: ["./math", "subtract"],
amd: "subtract"
}
}
]
}

See here for more information about library and externals .

如果您使用的是 ES 2015 和 babel 6,您可能还会遇到将库导出为模块对象而不是您想要的对象(例如您的组件)的问题。 Have a look at this question来解决它。

关于javascript - 如何在没有依赖关系的情况下捆绑模块以发布 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37669330/

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