比如我有一个是基于node v6.9.1的应用web1, 还有一个是基于node v7.6的应用web2 现在web1是不能在web2环境下运行的。 那么这两个应用可以在一台服务器上部署吗?
docker
较好的解决办法是用docker
nvm安装多个node,然后执行node时候使用绝对路径
@real888888 @Keifergu @i5ting 多谢! 综合了一下,看来docker是一个挺好的选择。 而且现在我们项目组已经有人在研究docker了,估计不久就会用上:-D
docker
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
@atian25 多谢!
@plusmancn 多谢,这个shell脚本我收藏了😁