【发布时间】:2018-10-29 02:16:44
【问题描述】:
所以在我的项目中,我需要多个包,包括“dep1”。
“dep1”需要另一个依赖,“dep2”。
而“dep2”需要多个包,包括“dep3”。
问题是,“dep3”与我想要使用的许可证不兼容(实际上,与我老板想要使用的许可证不兼容)。
幸运的是,“dep2”只有一个函数使用了“dep3”,而“dep1”没有使用这个函数。因此,如果我从 node_modules 中删除“dep3”,一切都会顺利进行。
我遇到的问题是,如何在进行 npm install 时修改 package.json 以考虑到这一点,而不是安装这个包?
我知道我可以分支“dep2”来抑制该功能,然后“dep1”使用修改过的“dep2”,但这似乎有点过分了,我将依赖包的所有者来接受我的分支.我正在寻找类似“好吧,只需将行 ignore : "dep3" 添加到 package.json”之类的解决方案,但找不到任何解决方案。
感谢您的帮助!
【问题讨论】:
-
在我写这篇评论时,当前的 Node.js 版本是
11.0.0,它支持--experimental-modules标志下的 ES6 导入。在此功能稳定后,您将能够使用rollup 等工具将“摇树”应用到您的文件并生成不包含您不使用的代码的包。不幸的是,要让它工作,依赖树中的所有模块也应该切换到 ES6 导入,所以我们必须等待一段时间。