Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js package-lock.json包要求漏洞(npm)_Node.js_Npm - Fatal编程技术网

Node.js package-lock.json包要求漏洞(npm)

Node.js package-lock.json包要求漏洞(npm),node.js,npm,Node.js,Npm,我有一个包,在package-lock.json中: "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { "arr-diff": "^2.0.0", "array-

我有一个包,在package-lock.json中:

"micromatch": {
  "version": "2.3.11",
  "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
  "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
  "requires": {
    "arr-diff": "^2.0.0",
    "array-unique": "^0.2.1",
    "braces": "^1.8.2",
    "expand-brackets": "^0.1.4",
    "extglob": "^0.3.1",
    "filename-regex": "^2.0.0",
    "is-extglob": "^1.0.0",
    "is-glob": "^2.0.1",
    "kind-of": "^3.0.2",
    "normalize-path": "^2.0.1",
    "object.omit": "^2.0.0",
    "parse-glob": "^3.0.4",
    "regex-cache": "^0.4.2"
  }
}
该漏洞是:“大括号”:“^1.8.2”,当我运行npm audit时,它说它已修复为2.3.1,但我似乎无法更新它,或者只是不知道如何更新

我尝试过的事情:

  • npm安装micromatch和支架,然后进行npm审计修复
  • npm安装&npm卸载micromatch和支架,然后运行npm更新
  • 删除node_模块和package-lock.json并执行npm i-f
  • 手动编辑package-lock.json,将版本和需求更改为依赖项,然后执行npm审计修复(它修复了它,但随后我运行了npm安装,并将版本回滚到1.8.2)
从npm依赖关系中,可能有一些事情我不理解。那么我该如何解决这个问题呢

为package.json编辑

{
  "name": "project",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@material-ui/core": "^3.9.2",
    "@material-ui/icons": "^3.0.2",
    "micromatch": "^3.1.10",
    "prop-types": "latest",
    "react": "^16.8.2",
    "react-async-component": "^2.0.0",
    "react-dom": "^16.8.2",
    "react-scripts": "^2.1.5",
    "typeface-roboto": "0.0.54"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ],
  "devDependencies": {
    "react-router-dom": "^4.3.1"
  }
}
{
“名称”:“项目”,
“版本”:“0.1.0”,
“私人”:没错,
“依赖项”:{
“@material ui/core”:“^3.9.2”,
“@material ui/图标”:“^3.0.2”,
“微匹配”:“^3.1.10”,
“道具类型”:“最新”,
“反应”:“^16.8.2”,
“反应异步组件”:“^2.0.0”,
“react dom”:“^16.8.2”,
“反应脚本”:“^2.1.5”,
“roboto字体”:“0.0.54”
},
“脚本”:{
“开始”:“反应脚本开始”,
“构建”:“反应脚本构建”,
“测试”:“反应脚本测试”,
“弹出”:“反应脚本弹出”
},
“eslintConfig”:{
“扩展”:“反应应用程序”
},
“浏览者”:[
">0.2%",
“没有死”,

“不是ie您需要将micromatch模块升级到最新版本3.1,该漏洞是因为您使用的micromatch 2.3.11使用了旧版本的大括号。大括号版本在micromatch的最新版本中升级,因此只需升级您的micromatch模块即可。这将解决您的问题

升级,

  • 将main package.json中的micromatch版本替换为3.1.10并保存 它
  • 删除package-lock.json文件
  • 我做npm吗

  • 当micromatch升级支架模块时看到此提交-

    您是否尝试了npm audit fix--force
    ?我尝试了,但它没有解决问题。它说我需要手动解决漏洞。我如何升级它?在我的帖子中说,我已经尝试安装它,然后进行了npm audit fix,但没有修复pro问题是,由于package-lock.json不会根据需求更新版本,即使我在package.json中安装了更新的版本。而且我的帖子也非常清楚地指出“我似乎无法更新它,或者只是不知道如何更新”,所以回答“你需要升级它”"没有真正解释这个过程实际上是没有帮助的。我只是这么做了,但是相同的旧版本的micromatch,带有漏洞,一直出现在package-lock.json中。你能发布你的package.json文件吗?我编辑了主要的帖子。编辑:micromatch只出现在package.json中,因为我们刚刚尝试了解决方案,但我不需要它这里是为了让项目工作,如果可能的话,不要在那里。正如你说的,你不想在package.json中包含micromatch,但是如果你在代码库中使用该模块,那么你也需要提交micromatch的文件。这是我不建议做的事情,相反,你应该在package.json中包含它d npm使用您的package.json的内容安装,它对我来说运行良好。请参见此处的屏幕截图