详解离线安装npm包的几种方法

 更新时间:2018年11月25日 10:19:24   作者:jingsam''s blog  
这篇文章主要介绍了详解离线安装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 https://github.com/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>

那有什么方法相比于上一种方法更干净呢?答案是 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的源码,比第一种方法更干净环保。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 在 Node.js 中使用 async 函数的方法

    在 Node.js 中使用 async 函数的方法

    利用 async 函数,你可以把基于 Promise 的异步代码写得就像同步代码一样。一旦你使用 async 关键字来定义了一个函数,那你就可以在这个函数内使用 await 关键字。下面通过本文给大家分享Node.js 中使用 async 函数的方法,一起看看吧
    2017-11-11
  • Win7系统只能安装的nodejs13.14,如何安装高版本nodejs

    Win7系统只能安装的nodejs13.14,如何安装高版本nodejs

    正常情况下,Win7支持的Node.js最高版本是V13.14,但在开发过程中,有不少Vue项目或其他需要依赖Node环境的项目,对Node版本要求都比较高,对此,我们要么重装操作系统到Win8以上,要么就得想办法在Win7中安装高版本的Node,否则很多项目在编译打包时可能会出现警告信息或失败
    2024-11-11
  • 简单实现node.js图片上传

    简单实现node.js图片上传

    这篇文章主要为大家详细介绍了node.js图片上传的简单实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Node.js打包管理工具NPM用法

    Node.js打包管理工具NPM用法

    这篇文章介绍了Node.js打包管理工具NPM的用法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • nodejs中使用多线程编程的方法实例

    nodejs中使用多线程编程的方法实例

    这篇文章主要介绍了nodejs中使用多线程编程的方法实例,本文使用nodejs addon借助c/c++的能力扩展nodejs多线程编程,需要的朋友可以参考下
    2015-03-03
  • Node.js 路由的实现方法

    Node.js 路由的实现方法

    这篇文章主要介绍了Node.js 路由的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Nodejs中session的简单使用及通过session实现身份验证的方法

    Nodejs中session的简单使用及通过session实现身份验证的方法

    session的本质使用cookie来实现。本文给大家介绍Nodejs中session的简单使用及通过session实现身份验证的方法,对node.js session相关知识感兴趣的朋友一起学习吧
    2016-02-02
  • node app 打包工具pkg的具体使用

    node app 打包工具pkg的具体使用

    这篇文章主要介绍了node app 打包工具pkg的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Nodejs开发grpc的实例代码

    Nodejs开发grpc的实例代码

    Nodejs开发grpc包含静态和动态两种代码生成方式,静态代码生成需要提前通过.proto文件编译生成JS源码,而动态代码生成则是在运行时指定IDL文件位置,实时生成源码,两者各有优缺点,本文给大家介绍Nodejs开发grpc的实例代码,感兴趣的朋友一起看看吧
    2024-10-10
  • Node.js基础入门之path模块,url模块,http模块使用详解

    Node.js基础入门之path模块,url模块,http模块使用详解

    这篇文章主要为大家介绍了Node.js中的三个模块(path、url、http)的使用详解,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-03-03

最新评论