我有一个Git工作流程,我将我的Git更新推送到一个裸的repo,触发以下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服务器上运行。
提前致谢。
答案 0 :(得分:2)
它无效,因为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文件夹
答案 1 :(得分:1)
您可能需要通过运行npm install gulp -g