背景
很多公司的服务器环境没有做隔离,就是全局安装一个 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相关推荐
- 安装SQL Server2008和Visual Studio2008 提示:该服务器上安装了以前版本的VS2008
这个是亲身经历,为此,我重装系统无数次-- 我之前的状况就是先装的VS2008,撞上之后,再装SQL Server2008,到了倒数第二步,就会出现错误--该服务器上安装了以前版本的VS2008,无法 ...
- linux安装socket.io,ubuntu – 如何在node.js npm服务器上查看socket.io版本
我想确认一下,如果我升级到socket.io 0.7,我的当前应用程序是否无法在此服务器上运行?如果我升级 为此我想看看我当前的socket.io版本,我怎么能看到它? 而另一方面我想去稳定版本的节点 ...
- 如何查看服务器上安装了哪些版本的Microsoft.ACE.OLEDB驱动
在做一个把 windows server 2008 上的应用迁移到windows server 2016的项目时,碰到了一个使用了Microsoft.ACE.OLEDB驱动的asp项目,在win 20 ...
- 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 ...
- git/svn reset/revert 回滚到服务器上的某一个版本
Git: 1.git log 查找到要回滚的版本号,设为aldfjsajdfljsadf 2.git reset --hard aldfjsajdfljsadf reset 会影响 commit a ...
- 不用开着电脑,如何将脚本代码放到服务器上?
作者 | sergiojune 转载自公众号日常学python(ID:daily_learn) 程序员转行学什么语言? https://edu.csdn.net/topic/ai30?utm_sour ...
- python怎么输入代码-教你如何将自己的脚本代码放到服务器上运行
原标题:教你如何将自己的脚本代码放到服务器上运行 本文授权转自 | 日常学Python 上次弄了个机器人,反响挺不错的,我也挺满意的,因为这个我也初步了解了服务器这个东西,懂得了如何将自己的脚本代码放 ...
- 教你如何将自己的脚本代码放到服务器上运行
上次弄了个机器人,反响挺不错的,我也挺满意的,因为这个我也初步了解了服务器这个东西,懂得了如何将自己的脚本代码放到服务器上运行了,妈妈再也不怕我每天都得开着电脑才能运行脚本了,不过说实话,这个服务器真 ...
- 教你如何将自己的脚本代码放到服务器上运行 1
1. 购买服务器 如果你是学生的话,想折腾的可以去阿里云那里购买,因为有学生机优惠,只需要9.9一个月,但是只能购买一次,在下一次购买需要做任务才可以继续享用学生机优惠.如果你是土豪的话,可以直接忽略 ...
最新文章
- A Rectangular Barn
- 新计算推动信息技术产业新发展?
- PHP 端口号 是否 被占用 以及 解决方法
- 工程实战-ES6环境配置
- PHP 源码 —— is_array 函数源码分析
- Spring2.5整合JPA
- 【Python-numpy】range()、np.arange()、np.linspace()、np.logspace()的使用和区别,list和array不同
- 如何在客户端清除fileUpLoad控件的文件路径
- git 开发功能分支标准流程
- mvnrepository.com jar包下载
- Java数据结构与算法概述
- 微软面试题 经典测试 (博弈论 经典案例)
- 旷视科技 CSG 算法负责人姚聪:深度学习时代的文字检测与识别技术 | AI 研习社 103 期大讲堂...
- 计算机信息技术学ps吗,小学信息技术photoshop教案.docx
- (第八天)记忆系统训练软件3.0
- 转载:欧姆社 漫画学习统计学
- ADS5517IRGZ 德州TI 11 位、200MSPS 模数转换器 (ADC)
- ATF:Gicv源码文件系列-gicv2.mk
- 公众号附件链接怎么放?
- html将图片做成书的封面,把照片做成杂志 个人照片制作成报纸、杂志封面效果|封面设计软件[图文教程]...
热门文章
- Vue系列vue-router的配置使用(一)
- 43个PSD to XHTML,CSS教程
- MS Script Control的 COM
- UILabel使用自定义字体
- keras——基于神经网络的风格迁移生成艺术字
- git 命令之 如何将本地新建分支推到服务器上
- shell学习过程中的错误集锦
- LeetCode 4. Median of Two Sorted Arrays
- 【AI视野·今日CV 计算机视觉论文速览 第197期】Thu, 13 May 2021
- Nginx学习之十一-Nginx启动框架处理流程
|