Web前端学习笔记之离线安装npm
0x00 概述
这段时间的工作主题就是Linux
下的“离线部署”,包括mongo、mysql、postgresql、nodejs、nginx等软件的离线部署。平常在服务器上借助apt-get就能轻松搞定的事情,在离线环境下就变得异常艰难。上一篇文章讲了使用snap离线安装软件的方式,但对于npm包怎么离线部署,snap是无能为力的。本篇文章就来讲一讲离线安装npm包的几种方法。
接下来的部分,我将以离线安装pm2为例来进行说明。pm2是一个进程守护程序,用于启动node集群和服务进程出错时自动重启,在生产环境下部署nodejs应用一般都会使用到。
0x01 使用 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 ,对于有“洁癖”的人是难以忍受的。
0x03 使用 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的源码,比第一种方法更干净环保。
Web前端学习笔记之离线安装npm的更多相关文章
- Web前端学习笔记(001)
....编号 ........类别 ............条目 ................明细....................时间 一.Web前端学习笔记 ...
- 【前端】Web前端学习笔记【2】
[2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...
- 【前端】Web前端学习笔记【1】
... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...
- web前端学习笔记
web前端学习笔记(CSS盒子的定位) 相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准 ...
- web前端学习笔记:文本属性
今天的web前端笔记主要讲述文本属性,希望能帮助到正在学习web前端开发的初学者们,废话不多说了,一起来看看文本属性的相关内容吧. 文本属性 文本缩进 将Web页面上的一个段落第一行缩进,这是一种最常 ...
- Web前端学习笔记之安装和使用PhantomJS
0x00 安装PhantomJS(linux环境安装) 将PhantomJS下载在/usr/local/src/packet/目录下(这个看个人喜好) 操作系统:CentOS 7 64-bit 1.下 ...
- Web前端学习笔记之BootStrap
Bootstrap介绍 Bootstrap是Twitter开源的基于HTML.CSS.JavaScript的前端框架. 它是为实现快速开发Web应用程序而设计的一套前端工具包. 它支持响应式布局,并且 ...
- web前端学习笔记(二)---Django
[前言]前面(一)学习了web的基础知识,介绍到了MVC,项目使用一个Django框架. Django book:https://code.ziqiangxuetang.com/django/djan ...
- Web前端学习笔记:Bootstrap框架
很久之前就有很多人给我推荐twitter的Bootstrap框架,但是直到前几天我才真正学习了下Bootstrap,的确是相当棒的框架,至少从视觉体验上超越了很多以前碰到了前端UI框架.今天我要聊聊B ...
随机推荐
- 【Tools】-NO.10.Tools.2.IDEA.1.001-【IDEA Configuration】-
1.0.0 Summary Tittle:[Tools]-NO.10.Tools.2.IDEA.1.001-[IDEA Configuration]- Style:Tools Series:IDEA ...
- 2019.03.24 Ajax
也还是会用到jquery中的Ajax请i求 所以第一还是引入jQuery包 可以去网上搜腾讯网静态资源库 然后引入包 Ajax还是异步处理 处理堵塞问题 import time 就可以了 ...
- 动手动脑(&课后实验):类和对象
1. 以下代码为何无法通过编译?哪儿出错了? 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法.而此时程序中已提供了一个有一个参数的构造函数,而定义对象时却没有参数,所以程序会报错. ...
- jmeter 发送加密请求 beanshell断言 线程组间传递参数
原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求, ...
- cocos2d-x android工程接入第三方支付宝SDK
1. 首先去支付宝官网下载开发者文档 2. 然后按着开发者文档将支付宝的sdk导入到你的工程中,并关联到工程中,步骤入下图: (1)将从支付宝官方网站获得的支付宝的sdk的jar包拷贝到工程中的lib ...
- XML反序列化遇到数字型节点值为空导致反序列化异常
实体类: [XmlRoot("stream")] public class _30320DuisiFukuanQueryResponseModel : ResponseModelB ...
- H5进行录音,播放,上传
废话不说,直接上代码吧 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...
- MYSQL5.6.X 非在线安装版(解压版)安装过程
一.卸载以前旧版本(本人5.5版本) 1.关闭MySQL服务 以管理员身份运行cmd,执行以下命令: net stop mysql 或者右键我的电脑,在管理——服务——停止MySQL 2.卸载MySQ ...
- OpenCV resources
http://blog.csdn.net/small_foxrabbit/article/details/39858149http://blog.csdn.net/wuyoy520/article/d ...
- Java类访问控制
public protected default private 本类 可见 可见 可见 可见 本类所在包 可见 可见 可见 不可见 其他包中的子类 可见 可见 不可见 不可见 其他包中的非子类 ...