我们有一个共享库,它为我们安装了所有的bootstraping代码。大多数人使用原始Javascript作为他们的前端,但也有一些人也使用Typescript。
package.json是否还可以包含仅适用于Typescript的依赖项列表(如所有@types
和其他与Typescript相关的模块),只有在提供某个标志时才会安装?即运行npm install
只会安装“普通”软件包,但npm install --some-flag
也会安装其他软件包。
答案 0 :(得分:0)
或许您正在寻找的是OptionalDependencies和--no-optional标志的组合使用。
来自https://docs.npmjs.com/files/package.json:
<强> optionalDependencies 强>
如果可以使用依赖项,但您希望npm继续执行 无法找到或无法安装,那么你可以把它放在 optionalDependencies对象。这是包名称到版本的映射 或url,就像依赖项对象一样。不同之处在于 构建失败不会导致安装失败。
处理缺乏问题仍然是你的计划的责任 依赖。例如,像这样:
try { var foo = require('foo') var fooVersion = require('foo/package.json').version } catch (er) { foo = null } if ( notGoodFooVersion(fooVersion) ) { foo = null } // .. then later in your program .. if (foo) { foo.doFooThings() }
optionalDependencies中的条目将覆盖相同名称的条目 在依赖关系中,所以通常最好只放在一个地方。
来自https://docs.npmjs.com/cli/install:
- no-optional 参数将阻止可选的依赖项 正在安装。