You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于pnpm处理Git托管包及GitHub Actions中pnpm 9安装报错的技术问询

pnpm 9在GitHub Actions中安装Git托管包时的警告与问题排查

Hey there! Let's walk through what's going on in your GitHub Actions log and figure out how to handle it.

First, let's look at the logs you shared:

...2028_bdafe4b9f3a3a25bf8a949127ee2568c npm-install: npm warn deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
...2028_bdafe4b9f3a3a25bf8a949127ee2568c npm-install: npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
Progress: resolved 1904, reused 0, downloaded 1800, added 1792
...2028_bdafe4b9f3a3a25bf8a949127ee2568c npm-install: > @codemirror/autocomplete@6.12.0 prepare
...2028_bdafe4b9f3a3a25bf8a949127ee2568c npm-install: > cm-buildhelper src/index.ts
Progress: resolved 1904, reused 0, downloaded 1902, added 1903
...2028_bdafe4b9f3a3a25bf8a949127ee2568c npm-install: npm notice
...2028_bdafe4b9f3a3a25bf8a949127ee2568c npm-install: npm notice New minor version of npm available! 10...

先拆解日志里的关键信息:

  • 废弃依赖警告:这些npm warn deprecated提示不是pnpm 9的问题,而是你安装的某个依赖(或依赖的依赖)还在使用已经被废弃的glob@8.1.0inflight@1.0.6包。这类警告大多不会影响当前功能,只是上游包需要更新依赖了。
  • Prepare脚本执行@codemirror/autocomplete@6.12.0prepare脚本在运行cm-buildhelper src/index.ts,这是npm/pnpm的正常行为——包在安装后会自动执行prepare脚本完成构建,从进度条来看,这个过程已经顺利推进了。
  • 安装进度:日志显示resolved 1904, downloaded 1902, added 1903,说明绝大多数包已经成功安装,看起来安装并没有完全失败,可能只是你看到警告误以为出问题了?

针对这些情况的处理建议:

  1. 确认安装是否真的失败:如果后续GitHub Actions步骤报错,先检查完整日志,看是不是安装后的步骤出问题,而非安装本身。如果只是这些警告,安装其实已经完成了。
  2. 处理废弃依赖警告
    • 可以在本地或Actions中运行pnpm why glob@8.1.0pnpm why inflight@1.0.6,找出是哪个包引入了这些废弃依赖,然后查看该包的最新版本是否已经修复了依赖问题,尝试升级它。
    • 如果暂时无法升级,这些警告可以先忽略,不会阻断安装流程。
  3. 优化GitHub Actions中的pnpm配置
    • 确保你用官方的pnpm/action-setup来安装指定版本的pnpm,避免环境中npm和pnpm的冲突:
      - uses: pnpm/action-setup@v2
        with:
          version: 9
      
    • 配置pnpm缓存,加速安装同时避免潜在的缓存异常:
      - uses: actions/cache@v3
        with:
          path: |
            ~/.pnpm-store
          key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-
      
  4. 检查Node.js版本兼容性:有些包(比如codemirror相关)对Node.js版本有要求,确保GitHub Actions中使用的Node.js版本符合依赖包的要求,可以用actions/setup-node指定版本:
    - uses: actions/setup-node@v4
      with:
        node-version: 20 # 或符合你项目要求的版本
        cache: 'pnpm'
    

如果还有更具体的报错(比如安装中断、后续步骤失败),可以补充完整日志,我们再进一步排查!

备注:内容来源于stack exchange,提问作者Dolphin

火山引擎 最新活动