首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >package.json:生成用于发布的package.json

package.json:生成用于发布的package.json
EN

Stack Overflow用户
提问于 2021-08-31 10:12:27
回答 1查看 475关注 0票数 2

我正在开发一个作为节点包发布的库,并且我正在使用webpack构建系统构建这个库。我有一个package.json和一个package-lock.json,它们被提交到存储库中。webpack构建正在生成一组编译和打包的工件和资产到一个dist文件夹中,该文件夹构成了我想要发布的库。

我的假设是,当我将已编译和捆绑的库发布到npm存储库时,使用包的开发人员不希望重新构建库,因此不需要下载库的任何dependenciesdevDependencies,因为我将库的编译输出发送到我发布的包中。

这意味着在npm publish步骤中,我需要一个删除dependenciesdevDependencies字段的package.json。否则,依赖于我的库的开发人员在将npm install运行到工作区时将收到所有这些依赖项,从而产生额外的开销。

对于如何从签入版本中生成一个新的package.json,删除这些字段并在发布前将它们放置在dist文件夹中,有什么最佳实践吗?

我可以想出许多方法来做到这一点,例如:

  • 使用带有copy-webpack-plugintransform函数的webpack构建将一个新的package.json输出到dist文件夹中。通过向构建管道中添加一个自定义步骤,生成修改后的package.jsondist文件夹。H 223H 124提交一个单独的package.json到一个子文件夹中,该子文件夹用于发布,并在发布时自动复制到D26文件夹中。H 227F 228

我想知道在如何做到这一点上是否有一些公认的最佳实践方法,或者npm工具是否已经对用例内建提供了支持?

EN

回答 1

Stack Overflow用户

发布于 2022-03-09 06:17:42

回答

我没有看到任何标准的方法。您建议的所有方法都是为了生成一个新的、干净的package.json,这并没有什么问题。我想你能看到奇怪的是新的package.json的产生。别担心,这很常见,但据我所知,没有关于如何生成修改过的副本的规则。不过,我想就你的忧虑提出一些意见。

关于devDependencies

如果是从npm安装的,则依赖项的dev依赖项将不会被安装(或者不应该安装),在大多数情况下,这应该足够了。

依赖关系呢?

应该包括。如果您认为在最终的dist中不需要某些依赖项,并且只需要在开发中使用,那么从定义上来说是一个开发依赖项。将其移动到devDependencies数组中的package.json中。

捆绑的依赖关系呢?

那么,您的依赖关系不应该被捆绑或打包,也不应该被排除在依赖项之外。您可以这样做,但这违背了npm和类似的包管理器的目的,失去了与依赖关系模块化、缓存和版本控制相关的优势。如果您希望强制分发某些文件,因为您使用的是修改后的第三方库或其他具有绝对分发控制的原因,那么您可能至少应该查看一下package.json中的package.json密钥。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68996842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档