8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

尝试使用 NPX 运行嵌套 bin 脚本时,在 CI 环境上出现错误“无法确定要运行的可执行文件”

Grambo 2月前

27 0

首先,在我的本地机器(macOS)上一切都按预期工作,但是在 Ubuntu 上的 CI(GitHub 工作流)上运行它时出现错误。我的包使用带有可执行脚本的 devDependency...

首先, 在我的本地机器(macOS)上一切都按预期运行 ,但在 Ubuntu 上的 CI(GitHub 工作流)上运行它时出现错误。

我的包使用带有可执行脚本的 devDependency,而该脚本又使用带有可执行脚本的另一个依赖项。

  • 项目
    • devDep A // a dev dependency that includes a bin script
      • dep B // a dependency that includes a bin script

当运行 devDep A bin 脚本(带有 npx <command-a> ... )时,该脚本内部运行 dep B bin 脚本(带有 npx <command-b> ... ),我收到错误 could not determine executable to run .

从 CI 上的日志来看,它似乎尝试 command-b 从 npm 注册表中获取,然后尝试在找到的包中运行 bin 脚本 - 但该包中没有该脚本,从而导致错误。

据我了解,npm 应该尝试在本地环境中查找 npx 命令 node_modules ,然后在全局环境中查找,并且只有在找不到时才会尝试从 npm 注册表中获取它。因此,我认为问题是 npm 找不到 command-b ,因此它尝试从 npm 注册表中获取它。

注意: command-a 使用不依赖于 command-b 预期工作的选项运行。

这是工作流文件

name: Run tests

on:
  pull_request:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    concurrency: ci-${{ github.ref }}-${{ github.workflow }}

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      # Install node
      - uses: actions/setup-node@v4
        with:
          node-version: "20"

      # Install pnpm
      - uses: pnpm/action-setup@v4
        with:
          version: 8.9.0

      - name: Install dependencies and run tests
        run: |
          cd examples/my-project
          pnpm install
          pnpm run test

pnpm run test 运行 command-a 依赖于的脚本 command-b

注意:两种方法都试过了 npm —— pnpm 都没有用。

我不确定问题出在哪里,但由于它在我的本地环境中运行,我怀疑它与 GH CI / Ubuntu / 嵌套 npx 命令有关

帖子版权声明 1、本帖标题:尝试使用 NPX 运行嵌套 bin 脚本时,在 CI 环境上出现错误“无法确定要运行的可执行文件”
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Grambo在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
返回
作者最近主题: