详解离线安装npm包的⼏种⽅法
这段时间的⼯作主题就是Linux
下的“离线部署”,包括mongo、mysql、postgresql、nodejs、nginx等软件的离线部署。平常在服务器上借助apt-get就能轻松搞定的事情,在离线环境下就变得异常艰难。上⼀篇⽂章讲了使⽤snap离线安装软件的⽅式,但对于npm包怎么离线部
署,snap是⽆能为⼒的。本篇⽂章就来讲⼀讲离线安装npm包的⼏种⽅法。
接下来的部分,我将以离线安装pm2为例来进⾏说明。pm2是⼀个进程守护程序,⽤于启动node集和服务进程出错时⾃动重启,在⽣产环境下部署nodejs应⽤⼀般都会使⽤到。
使⽤ npm link
使⽤ npm link 的⽅式是最常⽤的⽅法,具体做法是在联⽹机器上下载pm2的源码并安装好依赖,拷贝到离线服务器上,最后借助 npm link 将pm2链接到全局区域。
⾸先,将pm2的源代码克隆下来:
$ git clone github/Unitech/pm2.git
然后进⼊到pm2项⽬中,安装好所有的依赖:
$ cd pm2
$ npm install
将安装好依赖的pm2⽂件夹拷贝到⽬标服务器上,进⼊pm2⽬录链接到全局区域:
$ cd pm2
$ npm link
这种⽅式最关键的是借助 npm link 完成链接,但 npm link 这条命令本意是设计给开发⼈员调试⽤的。但开发⼈员开发某个全局命令⼯具的时候,通过将命令从本地⼯程⽬录链接到全局,这样调试的时候,可以实时查看本地代码在全局环境下的执⾏情况。所以, npm link 的项⽬需要安装所有的依赖,包括 dependencies 以及 devDependencies ,⽽我们如果只是使⽤⽽不是开发某个包的话,正常情况下不应该安装 devDependencies 。
总⽽⾔之,这种⽅式优点是⽐较简单,缺点是安装了不需要的 devDependencies ,对于有“洁癖”的⼈是难以忍受的。
使⽤ npm install <folder>
linux离线安装nginx详细教程那有什么⽅法相⽐于上⼀种⽅法更⼲净呢?答案是 npm install <folder> 直接从⽂件夹安装。
同样以pm2为例,⾸先我们需要准备pm2包,可以在联⽹的机器上执⾏:
$ npm install pm2 --global-style
上⾯的 --global-style 很关键,表⽰将pm2安装到node_modules中⼀个单独的pm2⽂件夹中,这样我们可以⽅便地将pm2及其所有相关依赖都拷贝出来。也可以使⽤ npm install pm2 -g 安装到全局的node_modules,其⽂件布局是⼀样。
然后,将pm2⽂件拷贝到⽬标机器上,使⽤以下命令安装:
$ npm install pm2/ -g
这种⽅式不需要安装多余的 devDependencies ,并且不需要克隆pm2的源码,⽐第⼀种⽅法更⼲净环保。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。