[英]Forced NPM version in Nodejs application
我們有一個Nodejs + Express應用程序,並且僅當npm -v
等於process.env.npm_package_engines_npm
,才強制該應用程序成功運行npm install
,這是package.json中定義的npm版本。
這有可能嗎?
這樣做的原因是為了100%確保在所有開發實例中所有依賴項都將以相同的方式安裝,因為最近我們遇到了一些開發人員使用5.2.0和其他5.3.0版本的問題,因此,結果不一樣。
您可以使用js腳本文件並運行node preinstall.js
// preinstall.js
const exec = require('child_process').exec;
exec('npm -v', function (error, stdout, stderr) {
if (error) {
console.log('error: ' + error + stderr);
return;
}
const nodeVersion = stdout;
if (process.env.npm_package_engines_npm === nodeVersion) {
exec('npm install');
}
});
如果npm版本與您指定的版本不匹配,則會打印出警告(至少可以使用戶清楚,即使它沒有阻止實際安裝,也需要更新npm)。
如果通過引擎限制的 CLI標志,那么如果版本不匹配,則npm將會錯誤:
$ npm install --engine-strict
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.