通过脚本管理NPM包

时间:2017-12-20 03:03:15

标签: node.js

是否有库或是否可以内置到NPM本身来管理包并在脚本中安装它们?我正在编写一个流程来检查本地包是否存在,如果没有,则安装。然后,我希望能够在同一过程中动态地要求它。

2 个答案:

答案 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,当我们用它来加载模块时,它总是检查模块是否存在起初,我觉得它没有效果。

相关问题