我已经检查过全球小包装是否有吞咽
$ npm list -g minimatch
+-- gulp@3.9.1
| `-- vinyl-fs@0.3.14
| +-- glob-stream@3.1.18
| | +-- glob@4.5.3
| | | `-- minimatch@2.0.10 deduped
| | `-- minimatch@2.0.10
| `-- glob-watcher@0.0.6
| `-- gaze@0.5.2
| `-- globule@0.1.0
| +-- glob@3.1.21
| | `-- minimatch@0.2.14 deduped
| `-- minimatch@0.2.14现在,我希望将特定gulp包(所有minimatch@0.2.14和minimatch@3.04)中的所有minimatch版本更新为最新版本。
他们在npm中是否有任何命令来更新我现有的包依赖关系?
发布于 2018-11-13 10:21:33
下面是我的解决方案,您可以通过以下方法为minimatch包创建符号链接
npm ln
npm link (in package dir)
npm link [<@scope>/]<pkg>[@<version>]下面是更多解释https://docs.npmjs.com/cli/link的链接
我认为您不能手动更新它们,因为如果出现错误,您将不得不删除所有内容并重新安装。它有一些迁移问题困扰你,然后尝试。
npm audit [--json|--parseable]
npm audit fix [--force|--package-lock-only|--dry-run|--production|--only=dev]发布于 2018-10-24 15:26:56
您不能也不应该更新子包(用作其他包的依赖项的包)。
节点模块设计为包含node_modules中所有具有指定版本的依赖项,以避免新的更新出现问题。假设您的minimatch@3.0.4引入了一些新特性,现在glob@4.5.3可能停止工作,而gulp@3.9.1也可能停止工作。
你应该要么:
更新到新的gulp版本,而不必担心minimatch
npm update gulp或者直接使用最新版本的minimatch,使用
npm install minimatch但是,如果您的实际上是出于任何原因想要执行该操作,您可以尝试以下丑陋的攻击:
npm install minimatch@3.0.4在任意位置安装minimatchnode_modules文件夹并复制minimatch文件夹C:\Users\user\AppData\Roaming\npm\node_modules\gulp或Linux上的/usr/lib/node_modules/gulp/ )minimatch安装文件夹(find . | grep minimatch)中搜索gulpminimatch文件夹替换为您刚才在随机位置安装的文件夹此时,gulp应该使用更新的minimatch,尽管npm list仍将显示旧的版本号。
同样,这是高度不推荐的,只是为了回答问题。
https://stackoverflow.com/questions/52966789
复制相似问题