[英]Running Gulp in post-receive hook after Git push
我有一个Git工作流程,我将我的Git更新推送到一个裸仓库,触发以下post-receive钩子:
#!/bin/sh
git --work-tree=/home/website/stage/public_html --git-dir=/home/website/stage/website.git checkout -f
cd /home/website/stage/public_html/wp-content/themes/theme/src/js/
npm install
gulp
这将从package.json文件安装我的npm包,但gulp命令不起作用。 说没有找到'命令'。
我不知道这是否是用gulp构建我的dist /文件夹的正确方法? 即使我SSH服务器并尝试运行npm install
和gulp
它仍会产生相同的错误。 我在CentOS服务器上运行。
提前致谢。
它不起作用,因为gulp不在服务器的PATH中
在CentOS / Linux上,您可以使用echo $PATH
检查当前路径
解决方案1:使用-g向路径添加gulp
npm install -g gulp
-g
选项在您的服务器上全局安装程序包。 它很方便,但如果不同的项目使用不同版本的gulp,则可能会出现问题。
解决方案2:从node_modules运行脚本
npm install
(不带-g
选项运行)在node_modules目录中安装gulp。 从那里执行它。
node ./node_modules/gulp/bin/gulp.js
要么
./node_modules/gulp/bin/gulp
解决方案3:创建一个npm.script
更优雅的解决方案是在packages.json中添加一个脚本
"scripts": { "gulp": "gulp" }
那你可以做
npm run gulp
npm脚本自动使用node_modules文件夹
您可能需要通过运行npm install gulp -g
在构建服务器上全局npm install gulp -g
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.