是否有库或是否可以内置到NPM本身来管理包并在脚本中安装它们?我正在编写一个流程来检查本地包是否存在,如果没有,则安装。然后,我希望能够在同一过程中动态地要求它。
答案 0 :(得分:3)
这绝对是可能的,但可能是不可取的。
我发现npm模块“npm-programmatic”可以让你安装npm。一旦你有了这个,你需要做的就是用try catch包装你的需求,这样你就可以在需求失败时处理。
const npm = require('npm-programmatic')
let myPackage
try {
myPackage = require('my-package')
} catch(err) {
npm.install(['my-package']).then(function() {
myPackage = require('my-package')
console.log(myPackage)
})
}
这里可能遇到的最大问题是脚本需要运行超过标准权限。你可能需要sudo运行这个非常不可取的脚本。
答案 1 :(得分:0)
不,我认为没有办法实现你的目标,事实上,这是一个"糟糕的"这个想法,我想。
在Node.js下,我们总是使用package.json来管理所有依赖项,当我们想要部署它们时,我们只用来运行
$npm install
它非常简单有效,但根据您的想法,我们需要编写一个新函数而不是require函数,例如require2,当我们用它来加载模块时,它总是检查模块是否存在起初,我觉得它没有效果。