Node esBuild 突然失败并出现 FSLegacyMainResolve 问题

问题描述 投票:0回答:1

我有一个在本地构建良好的 Node 项目,并且历史上在 GitLab CI/CD 服务器上构建没有任何问题。然而,突然,管道构建在服务器上失败,并且代码没有更改。我什至为过去构建良好的过去提交打开了几个分支,但它们也在服务器上失败了。

我主要是想理解这个错误的“含义”:

const resolvedOption = FSLegacyMainResolve(packageJsonUrlString, packageConfig.main, baseStringified);
                         ^
TypeError: The URL must be of scheme file: <etc...>

我必须假设构建环境中发生了一些变化,它无法突然下拉包或类似的情况,但没有任何具体的问题可能是什么。我正在寻找有关为什么会发生这种情况的指示,以及可能如何排除故障。

构建服务器上日志的相关错误是:

$ npm install
added 362 packages, and audited 363 packages in 17s
47 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities
$ echo "Compile complete."
Compile complete.
$ npm run build
> [email protected] build
> tsc -skipLibCheck && node esbuild.config.mjs production && npm pack
node:internal/modules/esm/resolve:205
  const resolvedOption = FSLegacyMainResolve(packageJsonUrlString, packageConfig.main, baseStringified);
                         ^
TypeError: The URL must be of scheme file:
    at legacyMainResolve (node:internal/modules/esm/resolve:205:26)
    at packageResolve (node:internal/modules/esm/resolve:831:14)
    at moduleResolve (node:internal/modules/esm/resolve:901:20)
    at defaultResolve (node:internal/modules/esm/resolve:1121:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:396:12)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:365:25)
    at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:85:39)
    at link (node:internal/modules/esm/module_job:84:36) {
  code: 'ERR_INVALID_URL_SCHEME'
}
Node.js v20.10.0
Cleaning up project directory and file based variables 00:01
ERROR: Job failed: exit code 1

再次,这在本地运行得很好,相同版本的 Node.js 等。我已经清除了本地 npm 缓存,删除了 node_modules 等,所有这些都是为了潜在地复制服务器端状态,但在本地仍然一切正常.

node.js gitlab tsc esbuild
1个回答
0
投票

当我在 docker 容器(alpine)中使用节点 20.x 时遇到类似的问题。 使用 Node 18.x 就可以了。

© www.soinside.com 2019 - 2024. All rights reserved.