我正在学习TypeScript教程。不幸的是,这些包已经过时了,我收到了关于漏洞的警告。
我遵循了npm检查和更新包(如果需要)的一系列建议,即:
npm audit fix
npm audit fix --force
npm update
npm audit
说仍然有24个漏洞。但是,上面的任何命令都不会修复它们。
npm outdated
导致没有输出。
易受攻击的一揽子方案是:
ansi-regex
glob-parent
node-forge
nth-check
postcss
我不知道为什么他们是我的项目的一部分,我没有他们在我的package.json
配置。
修复这些漏洞的下一步步骤是什么?
我试过:
package.json
中的依赖项更新为新版本,然后运行npm install
。它没有效果。package-lock.json
,这里,然后再次运行npm install
。"ansi-regex": "^6.0.1", "glob-parent": "^6.0.2", "node-forge": "^1.3.0", "nth-check": "^2.0.1", "postcss": "^8.4.12"
作为devDependencies添加并运行npm install
。npm i npm@latest
中的建议运行如何修复NPM漏洞npm update glob-parent --depth 2
只是为了发现--depth
被废弃,NPM总是更新任何深度[Github]npm prune
node_modules
文件夹并再次运行npm install
您可以在空目录中使用以下package.json
再现我的最新状态,并运行npm install
。
{
"name": "pacman",
"version": "0.0.1",
"description": "I just follow a tutorial. Nothing of interest.",
"keywords": ["game"],
"license": "MIT",
"author": "someone stupid",
"scripts": {
"build": "parcel build index.html",
"dev": "parcel index.html --open",
"start": "npm run build && npm run dev",
"test": "echo \"Error: no test specified\" && exit 1"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^5.16.0",
"@typescript-eslint/parser": "^5.16.0",
"ansi-regex": "^6.0.1",
"eslint": "^8.12.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0",
"glob-parent": "^6.0.2",
"node-forge": "^1.3.0",
"nth-check": "^2.0.1",
"parcel": "^2.4.0",
"parcel-bundler": "^1.12.5",
"postcss": "^8.4.12",
"prettier": "^2.6.1",
"typescript": "^4.6.3"
},
"dependencies": {
"npm": "^8.5.5"
}
}
这将为您提供24个漏洞,18个中度漏洞和6个漏洞(在编写本报告时运行npm 8.5.5)。
发布于 2022-03-27 10:22:10
根据注释,我已经尝试了一般情况下的所有命令,在这种情况下,您需要开始分析各个包。
那我做了什么?
接下来,通过删除一半的依赖项并重复以下步骤来执行二进制搜索
node_modules
文件夹npm install
npm audit
以检查漏洞如果没有漏洞,请添加要安装的其余软件包的一半。
如果存在漏洞,请删除当前正在安装的包的一半。
在我的例子中,这个过程归结为以下两行:
"parcel": "^2.4.0",
"parcel-bundler": "^1.12.5",
对于parcel-bundler
,NPM发出警告:
npm WARN deprecated parcel-bundler@1.12.5: Parcel v1 is no longer maintained.
Please migrate to v2, which is published under the 'parcel' package.
所以我想我根本不需要parcel-bundler
,因为它已经集成到parcel
包中了,在前面的步骤中,我已经将它更新到了version 2。
发布于 2022-10-03 03:26:51
尝试使用以下命令更新所有npm。它帮助了我
npm install -g npm@latest
https://stackoverflow.com/questions/71635274
复制相似问题