我刚刚通过我的Laravel Forge部署脚本开始运行npm install
和npm run production
来在生产站点上编译我的资产。但是,我注意到运行npm install
会使我的部署速度降低了几分钟,而且我认为不需要在每次需要推送更新时都运行它。
这是我当前的部署脚本:
cd /home/forge/website.com
git pull origin master
npm install
npm run production # Run build process
composer install --no-interaction --prefer-dist --optimize-autoloader
echo "" | sudo -S service php7.2-fpm reload
if [ -f artisan ]
then
php artisan route:clear
php artisan route:cache
php artisan migrate --force
php artisan cache:clear
php artisan config:clear
php artisan config:cache
php artisan horizon:terminate
fi
是否可以在运行npm install
之前检查package.json文件是否已更改?
这是我尝试过的方法,但是破坏了部署脚本,我很难弄清为什么它不起作用。
cd /home/forge/website.com
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
git pull origin master
check_run package.json "npm install"
npm run production # Run build process
composer install --no-interaction --prefer-dist --optimize-autoloader
echo "" | sudo -S service php7.2-fpm reload
if [ -f artisan ]
then
php artisan route:clear
php artisan route:cache
php artisan migrate --force
php artisan cache:clear
php artisan config:clear
php artisan config:cache
php artisan horizon:terminate
fi