NPM:永远不要为npm包安装嵌套的可选依赖关系
问题描述:
我在创作一个我想发布到NPM的包A.NPM:永远不要为npm包安装嵌套的可选依赖关系
A依赖于程序包B,而程序包B又依赖于程序包C.然后C具有两个可选的本地依赖项D和E.我知道对于可选的依赖关系D和E我没有用处,并且从不想在有人安装我的软件包时尝试安装它们。
我知道你可以使用命令npm install A --no-optional -g
来安装没有可选依赖的软件包,但这是知识/开销,我宁愿软件包的用户不需要。
是否有任何npm配置或解决方法,其中包A的使用者只能使用npm install A
或npm install -g A
,并且永远不会安装可选的依赖项?
感谢
答
npm install A --no-optional
测试,看看是否一切正常。
npm list
确保您没有错误。
npm shrinkwrap
这将锁定包的依赖关系。
这样npm install会在尝试安装依赖关系之前查看npm-shrinkwrap.json。
你可以在这里阅读更多关于它https://docs.npmjs.com/cli/shrinkwrap