对不起,我总体上笨拙,对npm的工作原理了解不足。
我现在在Angular 6上的一个项目上工作,而github表示hoek程序包存在漏洞。
运行npm ls hoek
会得到以下依赖关系树:
+-- @angular-devkit/build-angular@0.6.8
| `-- node-sass@4.9.0
| +-- node-gyp@3.7.0
| | `-- request@2.81.0
| | `-- hawk@3.1.3
| | +-- boom@2.10.1
| | | `-- hoek@2.16.3 deduped
| | +-- hoek@2.16.3
| | `-- sntp@1.0.9
| | `-- hoek@2.16.3 deduped
| `-- request@2.79.0
| `-- hawk@3.1.3
| +-- boom@2.10.1
| | `-- hoek@2.16.3 deduped
| +-- hoek@2.16.3
| `-- sntp@1.0.9
| `-- hoek@2.16.3 deduped
+-- karma@2.0.4
| `-- log4js@2.9.0
| `-- loggly@1.1.1
| `-- request@2.75.0
| `-- hawk@3.1.3
| +-- boom@2.10.1
| | `-- hoek@2.16.3 deduped
| +-- hoek@2.16.3
| `-- sntp@1.0.9
| `-- hoek@2.16.3 deduped
无论我做什么,npm install
都会重新创建此依赖关系树。据我了解,这些依赖关系是自动获取的,为了解决该树中所有软件包都应从底部开始更新其依赖关系的问题:首先,应使用boom
和sntp
的新版本开始使用新版本的hoek,然后新版本hawk
应使用新版本的boom
和sntp
...
但是据我在github上看到的,链中的某些软件包尚未更新。
所以,我的问题是:到目前为止,如何在该项目中解决此问题?我可以在package-lock.json中手动更改依赖项版本(希望较低版本的程序包的更高版本与较高版本的程序包兼容)吗?
它将以某种方式解决我的问题,即问题2.16.3将从项目中消失吗?