2015-11-05 285 views
10

我在创作一个我想发布到NPM的包A.NPM:永远不要为npm包安装嵌套的可选依赖关系

A依赖于程序包B,而程序包B又依赖于程序包C.然后C具有两个可选的本地依赖项D和E.我知道对于可选的依赖关系D和E我没有用处,并且从不想在有人安装我的软件包时尝试安装它们。

我知道你可以使用命令npm install A --no-optional -g来安装没有可选依赖的软件包,但这是知识/开销,我宁愿软件包的用户不需要。

是否有任何npm配置或解决方法,其中包A的使用者只能使用npm install Anpm install -g A,并且永远不会安装可选的依赖项?

感谢

回答

3
npm install A --no-optional 

测试,看看是否一切正常。

npm list 

确保您没有错误。

npm shrinkwrap 

这将锁定包的依赖关系。

这样npm install会在尝试安装依赖关系之前查看npm-shrinkwrap.json。

你可以在这里阅读更多关于它https://docs.npmjs.com/cli/shrinkwrap