在运行应用程序时安装NPM软件包
当执行require('package')
而不是触发错误时,是否可以强制Node.JS安装npm
-package?
对于每个软件包来说,运行npm i package
会更方便。
你不能设置Node.js来做到这一点(因为Node实际上并不知道npm
)。
我不会推荐做这样的事情; 如果您错误地input了软件包名称,则会下载错误的软件包,可能在您的计算机上运行恶意代码。
请记住,任何人都可以发布npm包,并且包可以在安装过程中运行任何命令(包括rm -rf
)。
按照下面的风险自担风险:
您可以通过https://github.com/siddharthkp/auto-install获得您所描述的行为。
npm install -g auto-install cd project-name/ auto-install
我build议使用--secure
选项进行auto-install
。 这将只安装stream行的模块(在上个月>> 10k下载)。 这将消除拼写错误的一些风险,但是,如果您使用的是不常见的软件包,则不会自动安装。
依赖包应该通过package.json文件进行pipe理。 这是因为您可以轻松pipe理应用程序所需的软件包版本。 我不认为在运行时安装依赖是一个好习惯。
参考: 使用package.json
在理论上,你可以修改require
来启动一个cmd,并且如果没有find它们,将它们安装。 这将是艰难的,不规范的和可怕的。
你可以做的是使用package.json
,你可以用npm init
自动创build。
它会询问包裹的名字和其他一些问题,然后当你知道你需要哪个包裹时,你可以
npm install --save package
它会自动将package添加到package.json
。
随着package.json
设置,你可以简单地运行
npm install
它会自动安装在package.json
声明的每个包。
它会有其他不错的专业版,比如允许你确定安装哪个版本的软件包(防止依赖关系发生变化),知道你的依赖关系是什么,而不需要导航你的代码,以及准备你的代码被推入npm
。