CNode

弱弱的问一下。node发布版本的时候 怎么一下安装依赖包?

问答
Wwdragon1983发布于11 年前最后回复11 年前7 回复5203 浏览0 收藏

java 打包一个服务很简单 ant 或者限制的maven。 node 我现在每次都是npm install的。 但是感觉太麻烦,到生产上面部署。用什么方式呢,package.json是不是需要手写?

查看回复

回复 (7)

I
iranom#1·11 年前

你可以把主要用的包直接放在你的项目svn/git里。 数据冗余被证明是极有必要的。

W
wdragon1983#2·11 年前

@iranom 你意思在项目里面把 所有的包放到版本控制工具里面 ,然后一起打包到生产环境吗? 这好像不是很好的方式吧!

W
wdragon1983#3·11 年前

这个没人有什么好方法吗?

K
klesh#4·11 年前

@wdragon1983 版本通过git,检出旧版再publish。一般性要有测试什么的去保证发布可靠性,尽量不用回退。这个也可以配合git钩子进行自动测试和发布啊。可定制性强。当然这个是参考性的东西。

来自酷炫的 CNodeMD

K
klesh#5·11 年前

用 shell 脚本不是很简单吗?比如开发机直接发布,做一个密钥登录,然后建一个 publish.sh :

gulp initial script style
if [ ! -d ./tmp ]; then
  mkdir ./tmp
fi;
rm -rf ./tmp/release
mkdir -p ./tmp/release
cp -R {bin,core,migrations,models,public,views,routes,utils,app.js,config.json,package.json,nginx.conf} ./tmp/release
rsync -vrcz --progress -e ssh --exclude-from exclude.list --delete ./tmp/release/ user@server.com:~/app
ssh user@server.com '/etc/initd/nginx reload; npm install --production; pm2 restart 0'

增量更新,速度快!全自动化,如有上传数据,放在 ~/app 外面,在 nginx.conf 配置 location 就行了。

W
wdragon1983#6·11 年前

@klesh 楼上的 是 多次发布的解决方案。 感觉还是不是很好呀,你这种方案,没备份,出错了怎么退回到上一个版本?

还有我问的问题是 第一次发布。 如何安装node的依赖包。 比如增加一台新机器。

Y
youxiachai#7·11 年前

用docker...

参与回复
登录后即可参与回复。登录