每当在真实服务器上将最终代码更新到'git master'时,我都会使用以下脚本。
git fetch origin
git reset --hard origin/master
rm -rf /var/www/html/projectA/node_modules/
rm /var/www/html/projectA/package-lock.json
rm /var/www/html/projectA/public/js/react/entry.js // This is SPA
rm /var/www/html/projectA/public/mix-manifest.json
npm install --save
npm run production
// the following is Apache restarting...
我想知道哪种部署方法是正确的。有如下方法。
1)上面的例子
2)在真实的服务器上,只做
git fetch origin
git reset --hard origin/master
npm run production
3)在本地或alpha服务器和真实服务器上创建SPA,只做这个。
git fetch origin
git reset --hard origin/master
我已经尝试了1)和2),但我后来发现有关2)的情况的错误,这意味着我的本地没有错误但是后来在真实服务器上的错误已经进行了更新。
如果有任何好方法在真实服务器上部署项目,您能告诉我吗?
1)和2)需要很长时间,但在3)的情况下,我不知道它是否常见且安全。根据我的经验,socket.io在3)中不起作用。
1)
应该是:
git fetch origin
git reset --hard origin/master
// node_modules is required for npm run production
// rm -rf /var/www/html/projectA/node_modules/
// package-lock.json is required to lock the package version, to make it work like your local environment
// rm /var/www/html/projectA/package-lock.json
// Usually would overwrite them when running npm run production
// rm /var/www/html/projectA/public/js/react/entry.js // This is SPA
// rm /var/www/html/projectA/public/mix-manifest.json
npm install --save
npm run production
这是执行服务器更新的正确过程。
qazxsw poi没有qazxsw poi,你怎么能运行qazxsw poi?
2)
也是可行的解决方案之一。但是,有些人不喜欢它,因为他们不想将生产(构建)文件存储在他们的npm install
中。因为它占用空间,你的团队必须下载它们才能开发,即使它们不需要它们。 npm run production
用于管理源代码,而不是发布。