在 package-lock.json 中禁用本地依赖的完整性检查
Disable integrity check for local dependency in package-lock.json
如何禁用包-lock.json 中本地依赖项的完整性检查?
在我的存储库中,我有一个基础库以及两个 Angular 应用程序,它们都使用我的基础库作为依赖项。
不幸的是,基础库的完整性 sha512 每个构建都不同,npm 无法安装依赖项。
这是它的输出:
npm ERR! code EINTEGRITY
npm ERR! Verification failed while extracting @me/base-library@file:../lib/me-base-library-1.0.0.tgz:
npm ERR! Verification failed while extracting @me/base-library@file:../lib/me-base-library-1.0.0.tgz:
npm ERR! Integrity check failed:
npm ERR! Wanted: sha512-(...)
npm ERR! Found: sha512-(...)
摘自“包-lock.json”:
"@me/base-library": {
"version": "file:../lib/me-base-library-1.0.0.tgz",
"integrity": "sha512-(...)" // <- different with every build
}
有什么方法可以禁用本地依赖项的完整性检查吗?
我不确定是否存在这种可能性 – 基本上,这将是一个打开安全问题的开关。
要在不引入安全问题的情况下解决此问题,您可以重新安装软件包,这应该会更新 integrity
:
的值
npm install file:../lib/me-base-library-1.0.0.tgz
要自动执行此操作,您可以创建一个 npm 脚本:
{
"scripts": {
"update-base": "npm install file:../lib/me-base-library-1.0.0.tgz"
}
}
npm run update-base
我可以通过引用我的库目录而不是 TGZ 文件来解决这个问题。 npm 和 yarn(均经过测试)不会为文件夹生成完整性哈希,只会为文件生成哈希。在 Angular 应用程序的 package.json
文件中,我刚刚将 "@me/base-library": "file:../lib/me-base-library-1.0.0.tgz"
更改为 "@me/base-library": "file:../lib"
。
此外,我必须将一些属性添加到基础库的 package.json
文件中:
"main": "lib/bundles/me-base-library.umd.js",
"module": "lib/fesm2015/me-base-library.js",
"es2015": "lib/fesm2015/me-base-library.js",
"esm2015": "lib/esm2015/me-base-library.js",
"fesm2015": "lib/fesm2015/me-base-library.js",
"typings": "lib/me-base-library.d.ts"
如何禁用包-lock.json 中本地依赖项的完整性检查?
在我的存储库中,我有一个基础库以及两个 Angular 应用程序,它们都使用我的基础库作为依赖项。
不幸的是,基础库的完整性 sha512 每个构建都不同,npm 无法安装依赖项。
这是它的输出:
npm ERR! code EINTEGRITY
npm ERR! Verification failed while extracting @me/base-library@file:../lib/me-base-library-1.0.0.tgz:
npm ERR! Verification failed while extracting @me/base-library@file:../lib/me-base-library-1.0.0.tgz:
npm ERR! Integrity check failed:
npm ERR! Wanted: sha512-(...)
npm ERR! Found: sha512-(...)
摘自“包-lock.json”:
"@me/base-library": {
"version": "file:../lib/me-base-library-1.0.0.tgz",
"integrity": "sha512-(...)" // <- different with every build
}
有什么方法可以禁用本地依赖项的完整性检查吗?
我不确定是否存在这种可能性 – 基本上,这将是一个打开安全问题的开关。
要在不引入安全问题的情况下解决此问题,您可以重新安装软件包,这应该会更新 integrity
:
npm install file:../lib/me-base-library-1.0.0.tgz
要自动执行此操作,您可以创建一个 npm 脚本:
{
"scripts": {
"update-base": "npm install file:../lib/me-base-library-1.0.0.tgz"
}
}
npm run update-base
我可以通过引用我的库目录而不是 TGZ 文件来解决这个问题。 npm 和 yarn(均经过测试)不会为文件夹生成完整性哈希,只会为文件生成哈希。在 Angular 应用程序的 package.json
文件中,我刚刚将 "@me/base-library": "file:../lib/me-base-library-1.0.0.tgz"
更改为 "@me/base-library": "file:../lib"
。
此外,我必须将一些属性添加到基础库的 package.json
文件中:
"main": "lib/bundles/me-base-library.umd.js",
"module": "lib/fesm2015/me-base-library.js",
"es2015": "lib/fesm2015/me-base-library.js",
"esm2015": "lib/esm2015/me-base-library.js",
"fesm2015": "lib/fesm2015/me-base-library.js",
"typings": "lib/me-base-library.d.ts"