我們有一個共享庫,它爲我們安裝了所有的自舉代碼。大多數人在他們的前端使用原始Javascript,但也有一些人使用Typescript。可選的NPM依賴項安裝
package.json是否有可能還包含僅用於Typescript的依賴關係列表(如所有@types
和其他Typescript相關模塊),只有在您提供特定標誌時纔會安裝它們?即運行npm install
只會安裝「普通」軟件包,但npm install --some-flag
也會安裝附加軟件包。
我們有一個共享庫,它爲我們安裝了所有的自舉代碼。大多數人在他們的前端使用原始Javascript,但也有一些人使用Typescript。可選的NPM依賴項安裝
package.json是否有可能還包含僅用於Typescript的依賴關係列表(如所有@types
和其他Typescript相關模塊),只有在您提供特定標誌時纔會安裝它們?即運行npm install
只會安裝「普通」軟件包,但npm install --some-flag
也會安裝附加軟件包。
也許你正在尋找的是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-可選參數將防止 可選的依賴正在安裝。
用戶如何在** package.json中表達這一點? –
這就是我要問的。這是否可能?也許像'additionalDependencies'? – Kousha