如何修复@vue/cli中的漏洞?

8

我有一个vuejs-3项目,想要达到0漏洞。当我使用当前版本的node和npm进行npm安装时,我发现有48个漏洞。即使我尝试使用npm audit fix --force仍然存在问题。请问是否有人可以帮帮我?

C:\Users\achalapa\git\cnsr-odrplat-wcm-cld-vue\mcafee-consumer-wcm-cld-vue.lib> npm install

-npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained

-npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained

-npm WARN deprecated har-validator@5.1.5: this library is no longer supported

-npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.

-npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.

-npm WARN deprecated html-webpack-plugin@3.2.0: 3.x is no longer supported

-npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

-npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142

-npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained

-npm WARN deprecated @hapi/joi@15.1.1: Switch to 'npm install joi'

-added 923 packages, and audited 1694 packages in 4m

-105 packages are looking for funding
  run `npm fund` for details

-48 moderate severity vulnerabilities

-To address issues that do not require attention, run:
  npm audit fix

-To address all issues (including breaking changes), run:
  npm audit fix --force

当我们添加以下软件包时,会出现48个漏洞

*"@vue/cli-plugin-babel": "~4.5.13",
"@vue/cli-plugin-typescript": "~4.5.13",
"@vue/cli-plugin-vuex": "~4.5.13",
"@vue/cli-service": "4.5.13",*

这样做是否可以继续?这会对我的项目有害吗?

package.json

{
  "name": "mcafee-consumer-wcm-cld-vue.lib",
  "version": "1.0.0",
  "private": true,
  "sideEffects": false,
  "scripts": {
    "bundle": "set NODE_ENV=production && npm run lint && webpack --config webpack.dlp.js --progress --mode=production",
    "bundle-dev": "set NODE_ENV=development && npm run lint && webpack --config webpack.dlp.js --progress --mode=development",
    "lint": "eslint . --ext .ts,.js --ignore-pattern src/**/*.d.ts",
    "lint-and-fix": "eslint . --ext .ts --fix"
  },
  "dependencies": {
    "@vuelidate/core": "^2.0.0-alpha.18",
    "bootstrap": "^5.0.1",
    "core-js": "^3.13.0",
    "intersection-observer": "^0.12.0",
    "vue": "^3.0.0",
    "vuex": "^4.0.0-0",
    "whatwg-fetch": "^3.6.2"
  },
  "devDependencies": {
    "@babel/core": "^7.14.3",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-transform-arrow-functions": "^7.13.0",
    "@babel/plugin-transform-runtime": "^7.14.3",
    "@babel/preset-env": "^7.14.2",
    "@babel/preset-typescript": "^7.13.0",
    "@types/bootstrap": "^5.0.15",
    "@types/core-js": "^2.5.4",
    "@types/lodash": "^4.14.170",
    "@typescript-eslint/eslint-plugin": "^4.25.0",
    "@typescript-eslint/eslint-plugin-tslint": "^4.25.0",
    "@typescript-eslint/parser": "^4.25.0",
    "@vue/cli-plugin-babel": "~4.5.13",
    "@vue/cli-plugin-typescript": "~4.5.13",
    "@vue/cli-plugin-vuex": "~4.5.13",
    "@vue/cli-service": "4.5.13",
    "@vue/compiler-sfc": "^3.0.11",
    "@vue/eslint-config-prettier": "^6.0.0",
    "@vue/eslint-config-typescript": "^7.0.0",
    "babel-loader": "^8.2.2",
    "babel-preset-typescript-vue3": "^2.0.12",
    "clean-webpack-plugin": "^3.0.0",
    "eslint": "^7.27.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-loader": "^4.0.2",
    "eslint-plugin-jsdoc": "^35.0.0",
    "eslint-plugin-prettier": "^3.4.0",
    "eslint-plugin-vue": "^7.9.0",
    "fork-ts-checker-webpack-plugin": "^3.1.1",
    "html-webpack-plugin": "^5.3.1",
    "prettier": "^2.3.0",
    "terser-webpack-plugin": "^5.1.2",
    "ts-loader": "^9.2.2",
    "tslint": "^6.1.3",
    "typescript": "^4.3.2",
    "typescript-tslint-plugin": "^1.0.1",
    "vue-loader": "^16.2.0",
    "webpack": "^5.37.1",
    "webpack-bundle-analyzer": "^4.4.2",
    "webpack-cli": "^4.7.0",
    "webpack-merge": "^4.1.4"
  }
}
4个回答

20

如果所有的漏洞都只来自这 4 个软件包 - 即 vue/cli,那么你可以安全地忽略它,因为此代码执行的唯一位置是在开发和构建期间在您自己的计算机上。如果我们认为我们相信 Vue CLI 的创建者不会以对他们的客户(使用 Vue CLI 的开发人员)有害的方式使用这些易受攻击的软件包,我们可以安全地忽略这些警告,因为这些软件包中的任何代码都不会包含在应用程序包中....

你所关心的只有包含在 package.jsondependencies 部分中的软件包漏洞,因为这是将最终应用程序打包并由我们的用户/客户下载和执行的代码

请改用以下命令:npm audit --only=prod


5
npm audit --only=prod 是一个很有帮助的命令,谢谢! - HEYDANNY

1

对于任何从 @vue/cli 收到漏洞警告的人:

@vue/cli 现在处于维护模式,建议使用 create-vue 创建项目。

来自他们的网站:

⚠️ Vue CLI 处于维护模式!

对于新项目,现在建议使用 create-vue 来构建基于 Vite 的项目。同时,请参考 Vue 3 工具指南获取最新建议。

$ npm create vue@3

这应该正确处理npm audit警告,此时您将不会从vue收到任何警告。


0

npm prune 对我很有用!

我使用 npm install @vue/cli -g 安装了一个多余的包,名为 subscriptions-transport-ws,它已经不再维护,并且使用了一堆过时的包。

在执行了 prune 后,我使用 npm ls subscriptions-transport-ws 检查,发现它已经被删除了。而且我也没有漏洞了。


-2

如果您正在尝试创建项目时出现这种情况,请检查Windows系统环境变量,我的问题是只添加了一个路径,但您需要两个路径。一个是在"YourUser"的用户变量下的路径。

C:\Program Files \nodejs\

第二个路径也在系统变量下的路径中:

C:\Program Files \nodejs\

这为我解决了问题,希望对您有帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接