- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 monorepo 项目,其中一个包是一个 cli。为了防止 npm 供应链攻击,我正在考虑使用 npm-shrinkwrap
。
文档 here说:
The recommended use-case for npm-shrinkwrap.json is applications deployed through the publishing process on the registry: for example, daemons and command-line tools intended as global installs or devDependencies
这正是我在部署命令行工具时想要的。唯一的问题是,npm-shrinkwrap 似乎不支持工作区。
假设我的 monorepo 的 cli 部分可以在路径中找到:/code/packages/cli
,当我切换到它并运行 npm shrinkwrap
我得到错误:
npm ERR! code ENOWORKSPACES
npm ERR! This command does not support workspaces.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/me/.npm/_logs/2022-05-16T20_53_41_147Z-debug-0.log
如果我切换到项目的根目录,即 /code/
并运行 npm shrinkwrap
,它会生成一个 npm-shrinkwrap.json
具有以下结构:
{
"name": "root",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "root",
"version": "1.0.0",
"license": "ISC",
"workspaces": [
"packages/*"
],
"devDependencies": {
"lerna": "^4.0.0"
}
},
"packages/cli": {
"name": "@proj/cli",
"version": "1.0.0",
"extraneous": true,
"license": "ISC"
}
}
}
但唯一的问题是,这不是应该为 cli
创建的确切结构。此外,当我发布包(使用 lerna)时,npm-shrinkwrap.json
从未包含在 cli
包中。
关于如何使 npm-shrinkwrap 与工作区一起工作的任何提示?
基本上如何为 monorepo 中的包生成 npm-shrinkwrap.json
并在该包发布时包含它?
最佳答案
工具npm-lockfile
使用 npm 的内部结构并在 monorepos 内部工作。
不幸的是,他们使用的是旧版本的 @npm/arborist
,所以它不能正常工作,你可以使用 my patch现在
关于node.js - 如何在工作区中使用 npm-shrinkwrap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72265540/
我是一名优秀的程序员,十分优秀!