考虑以下场景:
我们有一些模块安装为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。本地构建应该依赖于工作区。
我问题中的例子应该是这样设置的:
- 删除
"somePackage": "file:../modules/somePackage.tgz",
- 设置
workspaces
部分,如下所示:
"workspaces" : [
"../modules/somePackage"
]