科普文:服务器上如何 Node 多版本共存 #31

背景

很多公司的服务器环境没有做隔离,就是全局安装一个 Node.js Runtime,一般很少升级。

nvs / nvm 等可以用来切换版本,但无法同时共存。而且一般服务器不允许你随意升级。

因此很多同学都会很痛苦:「都 8012 年了,还是 Node 4.x 甚至 0.x 简直想死!」

时至今天,最好的办法就是 Docker。但奈何很多小公司还处于水深火热之中。

本文将介绍下我们很早前就使用的一套方案,可以完美解决非 Docker 情况下 Node 多版本共存问题。

npm scripts

首先要介绍下 npm scripts ,简单的说,就是可以在 package.json 里面定义脚本。

{"name": "egg-showcase","scripts": {"start": "node index.js","debug": "egg-bin debug --inspect-brk"},"devDependencies": {"egg-bin": "^4.7.0",}
}

如上,定义脚本后即可执行:

$ npm start
$ # 执行并传参,需要多一个 --
$ npm run debug -- --inspect-brk

同学们可能会比较好奇,上面的 egg-bin 是哪来的?这是 npm 的一个很重要的特性:

通过 npm run your-scripts 启动的脚本,会默认把 node_modules/.bin 加到 PATH 环境变量中。

由于,我们的依赖 egg-bin 有定义了 bin 字段 ,因此安装后会软链到 node_modules/.bin ,从而能被寻址并执行。

聪明的同学很快就会想到,如果 Node 的 Runtime 也在这个目录下,会怎么样呢?

Node Runtime

因此,问题就可以转换为:如何把 Node Runtime 打包到项目中?

答案就是在构建期打包进去,参见我们的上一篇文章 『科普文:为什么不能在服务器上 npm install ?』

科普文:服务器上如何 Node 多版本共存 #31相关推荐

  1. 安装SQL Server2008和Visual Studio2008 提示:该服务器上安装了以前版本的VS2008

    这个是亲身经历,为此,我重装系统无数次-- 我之前的状况就是先装的VS2008,撞上之后,再装SQL Server2008,到了倒数第二步,就会出现错误--该服务器上安装了以前版本的VS2008,无法 ...

  2. linux安装socket.io,ubuntu – 如何在node.js npm服务器上查看socket.io版本

    我想确认一下,如果我升级到socket.io 0.7,我的当前应用程序是否无法在此服务器上运行?如果我升级 为此我想看看我当前的socket.io版本,我怎么能看到它? 而另一方面我想去稳定版本的节点 ...

  3. 如何查看服务器上安装了哪些版本的Microsoft.ACE.OLEDB驱动

    在做一个把 windows server 2008 上的应用迁移到windows server 2016的项目时,碰到了一个使用了Microsoft.ACE.OLEDB驱动的asp项目,在win 20 ...

  4. node配置ssl证书_在Linux服务器上部署node项目(git部署,forever持续运行,配置SSL证书)...

    一.环境部署 1.下载安装包: wget https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.xz 2.解压并进入目录: xz -d no ...

  5. git/svn reset/revert 回滚到服务器上的某一个版本

    Git: 1.git log 查找到要回滚的版本号,设为aldfjsajdfljsadf 2.git reset  --hard aldfjsajdfljsadf reset 会影响 commit a ...

  6. 不用开着电脑,如何将脚本代码放到服务器上?

    作者 | sergiojune 转载自公众号日常学python(ID:daily_learn) 程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_sour ...

  7. python怎么输入代码-教你如何将自己的脚本代码放到服务器上运行

    原标题:教你如何将自己的脚本代码放到服务器上运行 本文授权转自 | 日常学Python 上次弄了个机器人,反响挺不错的,我也挺满意的,因为这个我也初步了解了服务器这个东西,懂得了如何将自己的脚本代码放 ...

  8. 教你如何将自己的脚本代码放到服务器上运行

    上次弄了个机器人,反响挺不错的,我也挺满意的,因为这个我也初步了解了服务器这个东西,懂得了如何将自己的脚本代码放到服务器上运行了,妈妈再也不怕我每天都得开着电脑才能运行脚本了,不过说实话,这个服务器真 ...

  9. 教你如何将自己的脚本代码放到服务器上运行 1

    1. 购买服务器 如果你是学生的话,想折腾的可以去阿里云那里购买,因为有学生机优惠,只需要9.9一个月,但是只能购买一次,在下一次购买需要做任务才可以继续享用学生机优惠.如果你是土豪的话,可以直接忽略 ...

最新文章

  1. A Rectangular Barn
  2. 新计算推动信息技术产业新发展?
  3. PHP 端口号 是否 被占用 以及 解决方法
  4. 工程实战-ES6环境配置
  5. PHP 源码 —— is_array 函数源码分析
  6. Spring2.5整合JPA
  7. 【Python-numpy】range()、np.arange()、np.linspace()、np.logspace()的使用和区别,list和array不同
  8. 如何在客户端清除fileUpLoad控件的文件路径
  9. git 开发功能分支标准流程
  10. mvnrepository.com jar包下载
  11. Java数据结构与算法概述
  12. 微软面试题 经典测试 (博弈论 经典案例)
  13. 旷视科技 CSG 算法负责人姚聪:深度学习时代的文字检测与识别技术 | AI 研习社 103 期大讲堂...
  14. 计算机信息技术学ps吗,小学信息技术photoshop教案.docx
  15. (第八天)记忆系统训练软件3.0
  16. 转载:欧姆社 漫画学习统计学
  17. ADS5517IRGZ 德州TI 11 位、200MSPS 模数转换器 (ADC)
  18. ATF:Gicv源码文件系列-gicv2.mk
  19. 公众号附件链接怎么放?
  20. html将图片做成书的封面,把照片做成杂志 个人照片制作成报纸、杂志封面效果|封面设计软件[图文教程]...

热门文章

  1. Vue系列vue-router的配置使用(一)
  2. 43个PSD to XHTML,CSS教程
  3. MS Script Control的 COM
  4. UILabel使用自定义字体
  5. keras——基于神经网络的风格迁移生成艺术字
  6. git 命令之 如何将本地新建分支推到服务器上
  7. shell学习过程中的错误集锦
  8. LeetCode 4. Median of Two Sorted Arrays
  9. 【AI视野·今日CV 计算机视觉论文速览 第197期】Thu, 13 May 2021
  10. Nginx学习之十一-Nginx启动框架处理流程