Vite在Linux环境中构建react项目失败
本地没问题, 发布测试环境有问题, 详细错误信息如下
shell
`[17:05:58] > tsc -b && vite build`
`[17:05:58] `
`[17:06:03] /root/workspace/project/node_modules/.pnpm/rollup@4.47.0/node_modules/rollup/dist/native.js:64`
`[17:06:03] throw new Error(`
`[17:06:03] ^`
`[17:06:03] `
``[17:06:03] 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.``
`[17:06:03] at requireWithFriendlyError (/root/workspace/project/node_modules/.pnpm/rollup@4.47.0/node_modules/rollup/dist/native.js:64:9)`
`[17:06:03] at Object.<anonymous> (/root/workspace/project/node_modules/.pnpm/rollup@4.47.0/node_modules/rollup/dist/native.js:73:76)`
`[17:06:03] at Module._compile (node:internal/modules/cjs/loader:1554:14)`
`[17:06:03] at Object..js (node:internal/modules/cjs/loader:1706:10)`
`[17:06:03] at Module.load (node:internal/modules/cjs/loader:1289:32)`
`[17:06:03] ... 2 lines matching cause stack trace ...`
`[17:06:03] at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)`
`[17:06:03] at cjsLoader (node:internal/modules/esm/translators:262:5)`
`[17:06:03] at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:196:7) {`
``[17:06:03] [cause]: Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /root/workspace/project/node_modules/.pnpm/@rollup+rollup-linux-x64-gnu@4.47.0/node_modules/@rollup/rollup-linux-x64-gnu/rollup.linux-x64-gnu.node)``
`[17:06:03] at Object..node (node:internal/modules/cjs/loader:1732:18)`
`[17:06:03] at Module.load (node:internal/modules/cjs/loader:1289:32)`
`[17:06:03] at Function._load (node:internal/modules/cjs/loader:1108:12)`
`[17:06:03] at TracingChannel.traceSync (node:diagnostics_channel:322:14)`
`[17:06:03] at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)`
`[17:06:03] at Module.require (node:internal/modules/cjs/loader:1311:12)`
`[17:06:03] at require (node:internal/modules/helpers:136:16)`
`[17:06:03] at requireWithFriendlyError (/root/workspace/project/node_modules/.pnpm/rollup@4.47.0/node_modules/rollup/dist/native.js:46:10)`
`[17:06:03] at Object.<anonymous> (/root/workspace/project/node_modules/.pnpm/rollup@4.47.0/node_modules/rollup/dist/native.js:73:76)`
`[17:06:03] at Module._compile (node:internal/modules/cjs/loader:1554:14) {`
`[17:06:03] code: 'ERR_DLOPEN_FAILED'`
`[17:06:03] }`
`[17:06:03] }`
`[17:06:03] `
`[17:06:03] Node.js v22.14.0`
`[17:06:03] ELIFECYCLE Command failed with exit code 1.`
大致意思就是GLIBC_2.32, 找不到对应的 @rollup/rollup-linux-x64-gnu. 这个包,导致报错
先说解决方案
1、在package.json
中加入如下代码
json
"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "*"
}
2、如果使用pnpm或者其他包安装工具, 重新install
一下更新一下lock文件即可
注意⚠️
如果不重新install, lock文件不更新还是会导致安装失败哦
写在最后
如果大家有更好的解决方案, 欢迎大家留言哦!