【发布时间】:2021-08-31 10:12:27
【问题描述】:
我正在开发一个想要作为节点包发布的库,并且我正在使用webpack 构建系统构建该库。我有一个package.json 和一个package-lock.json 已提交到存储库。 webpack 构建正在将一组已编译和捆绑的工件和资产生成到构成我要发布的库的 dist 文件夹中。
我的假设是,当我将编译和捆绑的库发布到 npm 存储库时,使用该包的开发人员不想重新构建库,因此不需要下载任何 dependencies 或 @库的 987654326@,因为我在我发布的包中运送了库的编译输出。
这意味着在npm publish 步骤中,我需要一个删除dependencies 和devDependencies 字段的package.json。否则,依赖我的库的开发人员在他们的工作区运行 npm install 时将收到所有这些依赖项,从而导致额外的开销。
关于如何从签入版本中生成一个新的package.json 以删除这些字段并在发布前将它们放入 dist 文件夹中是否有最佳实践?
我可以想到很多方法来做到这一点,例如:
- 使用带有
copy-webpack-plugin和transform函数的webpack构建将新的package.json输出到dist文件夹中。 - 通过向我的构建管道添加一个自定义步骤,将修改后的
package.json生成到dist文件夹中。 - 通过将单独的
package.json提交到专门用于发布的子文件夹中,并在发布时自动将其复制到dist文件夹中。
我想知道是否有一些普遍接受的最佳实践方法可以做到这一点,或者npm 工具是否已经支持该用例内置?
【问题讨论】: