基于不同node版本的不兼容的应用可以在同一台服务器上部署吗?
发布于 8 年前 作者 WindTrace 4823 次浏览 来自 问答

比如我有一个是基于node v6.9.1的应用web1, 还有一个是基于node v7.6的应用web2 现在web1是不能在web2环境下运行的。 那么这两个应用可以在一台服务器上部署吗?

11 回复

较好的解决办法是用docker

nvm安装多个node,然后执行node时候使用绝对路径

@real888888 @Keifergu @i5ting 多谢! 综合了一下,看来docker是一个挺好的选择。 而且现在我们项目组已经有人在研究docker了,估计不久就会用上:-D

docker 是最佳选择。

另外,也可以用下 https://github.com/cnpm/nodeinstall ,把指定的 node 版本安装到 node_modules 下,用它来启动你的入口文件。

$ nodeinstall ^6.0.0
$ ./node_modules/.bin/node -v

在 ci 打包的时候,把 node 一起打进去,启动的时候 npm start 由于会自动把 ./node_modules/.bin/ 加到 PATH,故会优先选择当前项目下的 node。 这是我们之前在内网没有 docker 的时候实践。

@atian25 多谢分享! 看到你提到了ci,这是个什么东东?我好想没用过

自动集成, gitlab-ci / travis

@WindTrace 可以把 node 安装到项目目录,可以参考这个 deploy.sh

@plusmancn 多谢,这个shell脚本我收藏了😁

回到顶部