如何使包锁、完整性SHA和本地构建的模块作为tgz一起工作



考虑以下场景:

我们有一些模块安装为tgz。

在package.json中,它们被称为:

"somePackage": "file:../modules/somePackage.tgz",

我们希望使用包锁定,因此我们创建了包锁定文件。

包锁定文件具有:

"node_modules/somePackage": {
"version": "1.0.97",
"resolved": "file:../modules/somePackage.tgz",
"integrity": "sha512-PXp1Q75feN1P+PHhqZmPF/J/5q5oVnALOVtdDq69Bn29sqFdwHkNL1k4DjOBYbh1C8y8beETOc7T77hMUhrWmQ==",
"dev": true,

问题与完整性校验和有关。当重新生成包,然后运行npm install时,它未通过完整性检查。

我不确定最好的方法是什么。最终,有一种方法可以忽略像这样的tarball的校验和,这会很好,但我不确定有没有办法。

当前使用Npm 7和Node 14。

虽然我不同意npm检查本地构建的tarball的完整性校验和这一事实,但真正的问题是本地不应该构建tarball。本地构建应该依赖于工作区。

我问题中的例子应该是这样设置的:

  1. 删除"somePackage": "file:../modules/somePackage.tgz",
  2. 设置workspaces部分,如下所示:
"workspaces" : [
"../modules/somePackage"
]

最新更新