弱弱的问一下。node发布版本的时候 怎么一下安装依赖包?
java 打包一个服务很简单 ant 或者限制的maven。 node 我现在每次都是npm install的。 但是感觉太麻烦,到生产上面部署。用什么方式呢,package.json是不是需要手写?
7 回复
你可以把主要用的包直接放在你的项目svn/git里。 数据冗余被证明是极有必要的。
@iranom 你意思在项目里面把 所有的包放到版本控制工具里面 ,然后一起打包到生产环境吗? 这好像不是很好的方式吧!
这个没人有什么好方法吗?
用 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 就行了。
@klesh 楼上的 是 多次发布的解决方案。 感觉还是不是很好呀,你这种方案,没备份,出错了怎么退回到上一个版本?
还有我问的问题是 第一次发布。 如何安装node的依赖包。 比如增加一台新机器。
用docker…
@wdragon1983 版本通过git,检出旧版再publish。一般性要有测试什么的去保证发布可靠性,尽量不用回退。这个也可以配合git钩子进行自动测试和发布啊。可定制性强。当然这个是参考性的东西。
来自酷炫的 CNodeMD