开发者问题收集

$(npm bin)/hugo --environment production /bin/bash: 第 136 行:未知:未找到命令

2022-12-27
1603

我使用 hugo doks 和 gitlab,并使用以下 .gitlab-ci.yml

---
image: node:latest

variables:
  HUGO_ENV: production
  GIT_SUBMODULE_STRATEGY: recursive

before_script:
  - npm install
  - npm install -g hugo

test:
  stage: test
  script:
    - $(npm bin)/hugo --environment staging
  artifacts:
    paths:
      - test
pages:
  stage: deploy
  script:
    - $(npm bin)/hugo --environment production
  artifacts:
    paths:
    - public

这一切都运行正常,直到上周我突然出现这个错误

$ $(npm bin)/hugo --environment production
/bin/bash: line 136: Unknown: command not found
Cleaning up project directory and file based variables 00:00
ERROR: Job failed: exit code 1

有趣的是, 什么都没有改变 ,无论是在管道中,还是在 hugo 或我正在使用的模板中。

2个回答

npm bin 自 npm 版本 9.0.0-pre.0 起已被删除(请参阅 https://github.com/npm/cli/blob/latest/CHANGELOG.md

您只需将

$(npm bin)/xyz

替换为

$(npm_bin.sh)/xyz   

其中 npm_bin.sh 必须位于 $PATH 中,如下所示:

#!/bin/bash
echo ./node_modules/.bin
FrankL
2023-01-23
  1. 删除了以下行

     - npm install -g hugo
    
  2. 按照我使用的 主题 的建议更新 package.json

    ...
    "devDependencies": {
    ....
    "hugo-installer": ">=4.0.1",
    ....
    },
    "otherDependencies": {
    "hugo": "0.107.0"
    }
    
  3. 更新 hugo 的路径如下

    ./node_modules/.bin/hugo/hugo --environment production
    
papanito
2023-01-05