繁体   English   中英

在Git推送后,在post-receive hook中运行Gulp

[英]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 installgulp它仍会产生相同的错误。 我在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM