弱弱的问一下。node发布版本的时候 怎么一下安装依赖包?
发布于 8 年前 作者 wdragon1983 4529 次浏览 来自 问答

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的依赖包。 比如增加一台新机器。

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

来自酷炫的 CNodeMD

回到顶部