Vite 在本地和 GitHub Pages CI 中构建得很好。
然后我将 Node 从 18.17.0 升级到 18.20.2,它在本地构建得很好,但现在在 CI 中失败了。
我在 package.json 引擎中指定了 18.20.2,删除并重新生成了我的 package.lock.json 文件,但这并没有解决问题。
我得到的错误是:
> tsc && vite build
/home/runner/work/React-Portfolio/React-Portfolio/client/node_modules/vite/node_modules/rollup/dist/native.js:59
throw new Error(
^
Error: Cannot find module @rollup/rollup-linux-x64-gnu. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try `npm i` again after removing both package-lock.json and node_modules directory.
at requireWithFriendlyError (/home/runner/work/React-Portfolio/React-Portfolio/client/node_modules/vite/node_modules/rollup/dist/native.js:59:9)
at Object.<anonymous> (/home/runner/work/React-Portfolio/React-Portfolio/client/node_modules/vite/node_modules/rollup/dist/native.js:68:76)
... 3 lines matching cause stack trace ...
at Module._load (node:internal/modules/cjs/loader:1019:12)
at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:203:29)
at ModuleJob.run (node:internal/modules/esm/module_job:195:25)
at async ModuleLoader.import (node:internal/modules/esm/loader:337:24) {
[cause]: Error: Cannot find module '@rollup/rollup-linux-x64-gnu'
Require stack:
- /home/runner/work/React-Portfolio/React-Portfolio/client/node_modules/vite/node_modules/rollup/dist/native.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
at Module._load (node:internal/modules/cjs/loader:981:27)
at Module.require (node:internal/modules/cjs/loader:1231:19)
at require (node:internal/modules/helpers:177:18)
at requireWithFriendlyError (/home/runner/work/React-Portfolio/React-Portfolio/client/node_modules/vite/node_modules/rollup/dist/native.js:41:10)
at Object.<anonymous> (/home/runner/work/React-Portfolio/React-Portfolio/client/node_modules/vite/node_modules/rollup/dist/native.js:68:76)
at Module._compile (node:internal/modules/cjs/loader:1364:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
at Module.load (node:internal/modules/cjs/loader:1203:32)
at Module._load (node:internal/modules/cjs/loader:1019:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/home/runner/work/React-Portfolio/React-Portfolio/client/node_modules/vite/node_modules/rollup/dist/native.js'
]
}
}
Node.js v18.20.2
Error: Process completed with exit code 1.
我看到的建议修复是删除 package.lock.json 文件和 node_modules 文件夹,并让它们从构建中重新生成,但是我不知道如何在管道中执行此操作,也不认为它们从一开始就存在。
有人对如何解决这个问题有任何想法吗?
我能够通过运行
npm update
来修复此问题,然后创建一个更正的 package-lock.json 文件,并且构建能够从那里成功运行。