Javascript 提交package-lock.json值得吗?

Javascript 提交package-lock.json值得吗?,javascript,node.js,npm,package.json,Javascript,Node.js,Npm,Package.json,我在GitHub上发布了一个NodeJS项目,该项目使用了一些NPM模块,如我的package.json中所述。我将我的包锁.json提交到回购协议中 最近,我在我的存储库上收到通知,说我的一个依赖项最近发现了一个安全漏洞。经过进一步检查,不是我的一个直接依赖项存在漏洞,而是我的一个依赖项所依赖的一个模块。由于所有模块都显示在我的package lock.json中,因此会出现通知,告诉我将该依赖项更新为最新版本 - myproject - someDependency - anothe

我在GitHub上发布了一个NodeJS项目,该项目使用了一些NPM模块,如我的
package.json
中所述。我将我的
包锁.json
提交到回购协议中

最近,我在我的存储库上收到通知,说我的一个依赖项最近发现了一个安全漏洞。经过进一步检查,不是我的一个直接依赖项存在漏洞,而是我的一个依赖项所依赖的一个模块。由于所有模块都显示在我的
package lock.json
中,因此会出现通知,告诉我将该依赖项更新为最新版本

- myproject
  - someDependency
  - anotherDependency
    - aSubDependency
    - anotherOne <--- this one has a security issue
-myproject
-某种依赖
-另一种依赖
-独立性
-另一个是的,值得

此文件旨在提交到源存储库中,并且 有多种用途:

  • 描述依赖关系树的单个表示形式,以便 保证团队成员、部署和持续集成 安装完全相同的依赖项

  • 为用户提供一个设施,使其能够“时间旅行”到以前的状态 无需提交目录本身的节点\ u模块

  • 通过可读的 源代码控制差异

  • 并通过允许npm跳过重复安装来优化安装过程 以前安装的包的元数据解析


如果不签入并使用它,您可能会遇到“它在我的盒子上工作”的问题,因为您可能(将?)使用不同版本的东西。使用该选项有助于确保软件运行的所有地方都使用相同版本的第三方库。如果moduleB指定的是moduleA的特定版本,则可能会重复?任何只使用package.json的人都会安装坏模块来补充这个问题:当子模块有漏洞,但其父模块硬引用过时的模块时,您应该怎么做。我是将子模块包含在我的package.json中还是在父级回购协议上创建问题?