+ -

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

时间:2021-04-21

来源:互联网

在手机上看
手机扫描阅读

今天PHP爱好者给大家带来本篇文章给大家介绍一下多个nodejs下指定nodejs版本运行项目的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

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

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

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

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

解决的过程

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

然后我就想,首先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是可以帮你启动项目的。

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

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

截图:

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

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

最终解决方案

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

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

第二:找到你安装的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上面定义的启动脚本命令

如图:

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

然后直接拷贝一下

运行:

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

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

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

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

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

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

热门下载

更多