欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

详解多个node版本下如何指定版本运行项目?

程序员文章站 2022-03-16 15:24:39
...
本篇文章给大家介绍一下多个nodejs下指定nodejs版本运行项目的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

详解多个node版本下如何指定版本运行项目?

就像标题说的,我们服务上面有多个nodejs项目,并且需要部署,每个nodejs所需要的版本都不一样(一个12.8.0,一个6.3.0,一个8.11.1)

如果从传统做法来看有nvs,nvm,pm2等,工具虽好,但是我总觉得麻烦。学习工具又累,而且需要时间。

还有就是我目前选择的框架是eggjs,egg官方已经帮你把关于多进程,等性能优化做的很好了(阿里双十一就是采用的这种方案),我不需要再用别的工具帮我去优化性能,我这么小一个站点也不需要。

相关推荐:《nodejs 教程

解决的过程

我不断的百度,然而百度我只能看到阿里的解决方案。没有更多了(沮丧)

然后我就想,首先nodejs运行js文件必须是在node环境下面,需要执行node命令的,如果电脑已经装过nodejs那么其实你直接用npm命令就在安装的这个nodejs的大环境下(假设为6.0.0),但是你的项目要10.0.0以上才可以运行。

那么第一,我知道一个nodejs官网的包,并且同步更新官网版本,应该也是官网维护吧

包名称:node https://www.npmjs.com/package/node

安装之后可以通过npx node@4 你的js文件 来运行js

但是我试了很久无法通过这个命令来执行node_modules下面的包文件(命令的原理其实就是node命令,差别在于一个是你安装当当前运行环境了的,不会因为外层变化而变化)

后来又是不断的百度和尝试。始终找不到解决方式。

但是我想到一件事情,webstrom是可以帮你启动项目的。

详解多个node版本下如何指定版本运行项目?

看到没有,webstrom的启动nodejs本身就是指定nodejs版本的。就是说webstrom的启动方式就是我们所需要的启动方式。

然后就想,webstrom启动的命令是什么。(脑子笨了半天)其实启动一下就看到了

截图:

详解多个node版本下如何指定版本运行项目?

看截图,上面这部分就是webstrom的启动方式。

但是你直接拿这个命令去cmd下面启动是没用的,切换盘符也没用。

最终解决方案

第一:需要在cmd下面切换到项目的目录下面

如图(和package.json同一个目录下面):

详解多个node版本下如何指定版本运行项目?

第二:找到你安装的node包

详解多个node版本下如何指定版本运行项目?

第三:分析刚才的执行命令

F:\ItemSet\egg-project\dream-backend\node_modules\node\bin\node.exe F:\nodejs\node_modules\npm\bin\npm-cli.js run start --scripts-prepend-node-path=auto

通过分析得到

第一部分是你的包名称路径一直到node.exe

第二部分是你的npm安装的npm-cli.js文件位置

第三部分是run,运行命令

第四部分:start 在package.json上面定义的启动脚本命令

如图:

详解多个node版本下如何指定版本运行项目?

第五部分:--scripts-prepend-node-path=auto(我也不知道干啥的。大神请指教)

然后直接拷贝一下

运行:

看截图(已经成功运行了)

详解多个node版本下如何指定版本运行项目?

所以这就是最终解决方式了。

用最原始的node运行方式得到一个项目指定nodejs运行的环境。这样,你的电脑上面只要有任意一个nodejs环境都可以运行了。

注意npm必须要安装nodejs才有,所以是任意版本的nodejs

这里有一个问题,因为包安装的node文件是node.exe,说实在我不知道linux下行不行,但是node这个包应该是官方的包。希望也兼容linux。那么就是跨平台的了。不行大家可以用阿里的nodeinstall模块,也能达到效果

更多编程相关知识,请访问:编程视频!!

以上就是详解多个node版本下如何指定版本运行项目?的详细内容,更多请关注其它相关文章!

相关标签: nodejs