【问题标题】:Running Gulp in post-receive hook after Git pushGit push 后在 post-receive 钩子中运行 Gulp
【发布时间】:2017-10-19 19:56:21
【问题描述】:

我有一个 Git 工作流程,我将我的 Git 更新推送到一个裸仓库,这会触发以下接收后挂钩:

#!/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 服务器上运行。

提前致谢。

【问题讨论】:

    标签: git deployment gulp centos


    【解决方案1】:

    它不起作用,因为 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 文件夹

    【讨论】:

      【解决方案2】:

      您可能需要通过运行 npm install gulp -g 在构建服务器上全局安装 gulp

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-02
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-24
        • 2012-02-17
        • 2014-05-13
        相关资源
        最近更新 更多