代码之家  ›  专栏  ›  技术社区  ›  simbo1905

如何排除不安全的package.json临时依赖项?

  •  2
  • simbo1905  · 技术社区  · 7 年前

    我有一个 package.json 那个 gives a load of security warnings . 看第一个关键的项目我看到它 open@0.0.5 已经五年没更新了。看着 npm ll 它包含在 npm@6.5.0 我使用的是最近两周前更新的最新版本。

    我想删除不安全的依赖项。在Java世界中 maven package manager 允许您放置排除某些传递依赖项。理想情况下, npm 或者另一个节点包管理器,我应该能够排除具有漏洞的依赖项。然后我可以重新测试,我的应用程序工作,没有看到任何安全错误。有没有办法从my package.json中快速排除任何存在安全漏洞的内容?如果没有办法做到这一点,什么样的方法可以确保我的应用程序没有使用不安全的软件包?

    更新: 虽然 "npm": "^6.5.0" 在包中指定。JSON我用一个旧的NPM来构建它,上面提到了上面提到的关键问题。我解决了所有的问题 ./node_modules/.bin/npm audit fix --force

    1 回复  |  直到 7 年前
        1
  •  1
  •   Elliot Nelson    7 年前

    根据定义,你不能 排除 您正在使用的依赖项所依赖的包。换言之,如果你需要包裹 A ,和包 声称这取决于包装 B ,然后删除包 将导致 要么完全停止工作,要么开始反常的行为。

    不幸的是,这种情况确实发生了,您的选择包括:

    1. 忽略安全警告。
    2. 更换包装 与其他东西(在某些情况下适用,而不是其他情况下)。
    3. 向包的维护者询问 升级包的版本 他们依赖,可能会自己打开一个拉式请求。

    不过,就你而言,我不确定你的调查是否已经完成了-我不知道 open 在NPM的依赖列表中。可能值得取消node_模块并重新运行npm安装,然后再次检查谁在使用 打开 .