npm离线安装npm包的两种方法

2023-11-03

1、使用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 ,对于有“洁癖”的人是难以忍受的。

2、使用npm install

那有什么方法相比于上一种方法更干净呢?答案是 npm install 直接从文件夹安装。

同样以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的源码,比第一种方法更干净环保。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

npm离线安装npm包的两种方法 的相关文章

随机推荐

  • WIN10安装后必做的优化,解决卡顿问题

    WIN10安装后必做的优化 解决卡顿问题
  • 储存过程之拉链表

    很多做数仓的朋友在面试的时候都会被问到 你写过的最难的存储过程是什么 这时候我们都会想到拉链表 拉链表真的那么难吗 下面我简单介绍一下拉链表作用 以及制作思路 希望可以帮到你 拉链表的作用 数据进行增量或者全量同步时 我们希望保留少数字段历
  • ELF文件格式的详解

    1 说明 2 elf文件的基本格式 3 elf文件的头部信息 4 elf文件的节区 Section 4 1 节区的作用 4 2 节区的组成 5 elf文件的段 Segment 6 用python解析elf文件 7 总结 1 说明 ELF的英
  • 设计模式之中介者模式

    中介者模式包装了一系列对象相互作用的方式 使得这些对象1不必相互明显作用 从而使它们可以松散耦合 当某些对象之间的作用发生改变时 不会立即影响到其他的一些对象之间的作用 保证这些作用可以彼此独立变化 中介者模式将多对多的相互作用转化为一对多
  • C语言函数程序实例(超全)

    目录 1 编写函数fun 功能是 计算n门课程的平均值 计算结果作为函数值返回 例如 若有5门课程的成绩是 92 76 69 58 88 则函数的值为76 599998 2 用函数将一个N阶方阵进行转置 输入输出在主函数中实现 使用for循
  • [QT编程系列-7]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义工具栏、状态栏、快捷键、图标

    目录 3 QT窗体设计 3 2 自定义工具栏 3 2 1 目标 3 2 2 实现过程 3 2 自定义状态栏 3 2 1 目标 3 2 2 过程 3 3 自定义动作快捷键 3 4 自定义图标 3 QT窗体设计 3 2 自定义工具栏 在Qt中
  • idea2023搜不到中文插件问题

    idea2023搜不到中文插件 可以考虑下载插件后本地安装 注意先看idea版本号 然后从官网下载离线汉化包 选择的版本等于或者低于idea版本号 1 离线汉化包下载地址 Chinese Simplified Language Pack 中
  • python操作excel(xlrd、xlwt、xlwings、pandas、openpyxl)

    文章目录 一 xlrd库 1 工作簿 book 1 创建工作簿对象 2 工作表 sheet 1 创建工作表对象 3 单元格 range 1 获取单个单元格的值 两种方法 2 获取单行或单列的值 4 获取工作表中的总行列数 二 xlwt库 1
  • JAVA多线程--信号量(Semaphore)

    简介 信号量 Semaphore 有时被称为信号灯 是在多线程环境下使用的一种设施 它负责协调各个线程 以保证它们能够正确 合理的使用公共资源 一个计数信号量 从概念上讲 信号量维护了一个许可集 如有必要 在许可可用前会阻塞每一个 acqu
  • VUE + 微信分享

    cnpm i weixin js sdk save 在需要分享的页面引入 import wx from weixin js sdk import shares from api index 在methods写调用的方法 vue调用微信的自定
  • Idea 代码存在报找不到符号

    前言 话说IDEA这个开发工具已经用了好几个春秋了 没想到最近很是淘气呢 打算撂挑子了 来咱们来整顿一下这淘气的货 问题 Error 191 80 java 找不到符号 符号 方法 getListByParamWithoutPage jav
  • 国家发改委发布《“互联网+”高效物流实施意见》

    国家发展改革委关于印发 互联网 高效物流实施意见 的通知 发改经贸 2016 1647号 国务院有关部委 直属单位 各省 自治区 直辖市及计划单列市人民政府 为贯彻落实 国务院关于积极推进 互联网 行动的指导意见 国发 2015 40号 发
  • #ifdef,#ifndef,#define,#endif解析(原)

    我们在看一些开源的源代码的时候 经常会看到如下情景 if defined PTHREADS defined NOTHREADS define STL PTHREADS endif if defined UITHREADS defined P
  • github上的adminlte下载太慢,下载失败解决办法

    不知道为什么github上的AdminLTE下载特别慢 一直失败 可以到码云上的镜像仓库去下载 码云急速下载
  • USB/UART/I2C/SPI等接口传输速率

    USB UART I2C SPI等接口传输速率 目录 USB总线 UART I2C总线 SPI总线 GPIO RK3399 FMC 参考 USB总线 USB1 1 低速模式 low speed 1 5Mbps 全速模式 full speed
  • CompletableFuture使用(五)

    异步任务交互方法applyToEither acceptEither和runAfterEither的使用介绍 1 applyToEither两个异步任务哪个先返回就处理哪个异步任务结果并返回CompletableFuture Complet
  • Flexera 2023 云状态报告解读

    导读 根据 Flexera 2023 云状态报告显示 经济问题不会减缓公有云市场的增长 FinOps 仍然处于应用多云战略的企业首要关注的问题 AWS 和 Azure 在全球市场仍处于领导地位 Flexera 根据对全球 750 位云决策者
  • iOS开发网络-HTTP协议

    一 URL 1 基本介绍 URL的全称是Uniform Resource Locator 统一资源定位符 通过1个URL 能找到互联网上唯一的1个资源 URL就是资源的地址 位置 互联网上的每个资源都有一个唯一的URL 2 URL中常见的协
  • 前端基础(四)- 数组和对象方法

    数组的方法 Array prototype reduce reduce 方法会对数组中的每个元素按序执行一个由您提供的 reducer 函数 每一次运行 reducer 会将先前元素的计算结果作为参数传入 最后将其结果汇总为单个返回值 第一
  • npm离线安装npm包的两种方法

    1 使用npm link 使用npm link 的方式是最常用的方法 具体做法是在联网机器上下载pm2的源码并安装好依赖 拷贝到离线服务器上 最后借助npm link将pm2链接到全局区域 首先 将pm2的源代码克隆下来 git clone