【问题标题】:NPM-AUDIT find to high vulnerabilities. What am I supposed to do?NPM-AUDIT 发现高漏洞。我应该做些什么?
【发布时间】:2020-04-28 20:15:50
【问题描述】:

npm audit 在我的项目上运行并得到了这个

高级命令注入
@angular-devkit/build-angular [dev] 的依赖

路径 @angular-devkit/build-angular > @ngtools/webpack > 砍树

更多信息https://npmjs.com/advisories/1432

高级命令注入

包树杀

已在 >=1.2.2 中修补

@angular-devkit/build-angular [dev] 的依赖关系

路径@angular-devkit/build-angular > 杀树

更多信息https://npmjs.com/advisories/1432

Tree-kill 需要更新,但它是 Angular 的一个部门,不是我的。所以呢?需要等待 angular-team 将自己的 package.json 更新为更新版本的 tree-kill?

【问题讨论】:

    标签: angular npm npm-audit angular-devkit


    【解决方案1】:

    您无需等待新版本的软件包 @angular-devkit/build-angular 即可解决此问题。

    只需执行以下步骤:

    1. 更新您的package.json 文件,添加resolutions 部分,使用正确版本的包tree-kill
    "resolutions": {
      "tree-kill": "1.2.2"
    }
    
    1. 通过运行命令更新您的package-lock.json
    npx npm-force-resolutions
    
    1. 在您的项目中重新安装 NPM 包:
    rm -r node_modules
    npm install
    

    运行npm audit 以检查您的项目是否不再存在此问题。并且不要忘记提交修改过的文件package.jsonpackage-lock.json

    更多关于NPM Force Resolutions的信息。

    【讨论】:

      【解决方案2】:

      我今天遇到了同样的问题,我通过以下方式解决了它:

      1. 从 node_modules 文件夹中删除 tree-kill 包。
      2. 删除 package-lock.json 文件。
      3. 进入node_modules文件夹中的@angular-devkit/build-angular文件夹,编辑package.json文件;将 tree-kill 版本从 1.2.1 更改为 1.2.2
      4. 转到 node_modules 文件夹中的 @ngtools/webpack 文件夹,并执行与步骤 3 相同的操作。

      之后运行 npm install。

      【讨论】:

      • 所以通过这个修复,我必须用 Git 保留 node_modules 文件夹对吗?
      • 我不确定您的问题是否正确,但您需要在新安装后提交新的更改。
      • 手动编辑您的依赖关系不是一个好主意,因为重新安装项目将代表问题
      【解决方案3】:

      我也遇到了这个问题,经过一番研究,我发现了一些东西:

      NPM throws error on "audit fix" - Configured registry is not supported

      当然,这是关于另一个问题,但是通过调整那里给出的解决方案,它解决了我的问题。

      所以:

      • 删除tree-kill的node_modules文件夹
      • 像之前那样编辑 package-lock.json 文件,但改用 tree-kill 模块。
      • 别忘了在最后运行 npm install

      我希望我已经足够清楚了。

      【讨论】:

      • 如果在步骤1中删除tree-kill的node_modules文件夹时应该删除它,我该如何在第二步中编辑package-lock.json?
      【解决方案4】:

      检查 GitHub 存储库以查看是否正在修复。我发现了这个问题:https://github.com/angular/angular-cli/issues/16629 和一个拉取请求 (https://github.com/angular/angular-cli/pull/15894),它删除了依赖项。

      【讨论】:

        【解决方案5】:

        将以下代码添加到 package.json

        "resolutions": {
        "tree-kill":"1.2.2"
        }
        

        删除所有节点模块:

        rm -r node_modules
        

        将新版本 1.2.2 的 package-lock.json 更新为:

        npx npm-force-resolutions
        

        现在安装节点模块:

        npm install
        

        这对我有用。

        【讨论】:

          【解决方案6】:
          1. 从 node_modules 文件夹中移除 tree-kill 包并删除
            package-lock.json 文件。

          2. 找到@angular-devkit/build-angular node_modules 文件夹中的文件夹并编辑 package.json 文件; 将 tree-kill 版本从 1.2.1 更改为 1.2.2
            找到@ngtools/webpack 在 node_modules 文件夹中并编辑 package.json 文件; 将 tree-kill 版本从 1.2.1 更改为 1.2.2

          3. 运行 npm 安装。

          【讨论】:

            【解决方案7】:

            将 package.json 中的 @angular-devkit/build-angular 版本更新到以下:

            "@angular-devkit/build-angular": "0.13.10"
            

            它对我有用。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-07-05
              • 2020-02-15
              • 2018-10-23
              • 1970-01-01
              • 2019-12-06
              • 2021-09-09
              • 2020-08-08
              • 1970-01-01
              相关资源
              最近更新 更多