如何强制排除NPM的嵌套依赖项?

时间:2016-04-21 01:45:59

标签: node.js npm

我使用npm 2.15.0npm-shrinkwrap.json,我想强制排除最终安装的嵌套依赖项。

到目前为止,我已尝试创建rm -rf node_modules && npm install并手动编辑它以重新启动嵌套依赖项但在运行kerberos@0.0.19 install /.../node_modules/loopback-connector-mongodb/node_modules/mongodb/node_modules/kerberos (node-gyp rebuild) || (exit 0) CXX(target) Release/obj.target/kerberos/lib/kerberos.o CXX(target) Release/obj.target/kerberos/lib/worker.o CC(target) Release/obj.target/kerberos/lib/kerberosgss.o CC(target) Release/obj.target/kerberos/lib/base64.o CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o SOLINK_MODULE(target) Release/kerberos.node 之后...我仍然可以看到为以下内容构建的嵌套依赖项: / p>

{{1}}

1 个答案:

答案 0 :(得分:2)

NPM团队提供了一些建议,这些建议也可能对这种情况有所帮助。看到: https://blog.npmjs.org/post/145724408060/dealing-with-problematic-dependencies-in-a

从本质上讲,他们的建议是分支或派生正在引入的不需要的依赖项。从您的代码片段中,我认为您想派生mongodb模块并删除对kerberos的依赖关系,并更新loopback-connector-mongodb以使用您的mongodb派生。

在分叉依赖项时,关于类似问题的以下答案可能会有所帮助: https://stackoverflow.com/a/35349284/1524989

也可以用虚拟包装替换要删除的包装。为此,请创建一个新程序包(例如npm init kerberos),然后更新package-lock.json(如果需要,还可以更新npm-shrinkwrap.json),以代替真正的kerberos程序包。