Vue3+Vite打包报错:Rollup failed to resolve import
报错信息vite v6.3.6 building for production... ✓ 1646 modules transformed. ✗ Build failed in 13.09s error during build: [vite]: Rollup failed to resolve import node_modules/axios/index.cjs from D:/MyCode/wylims-jm/lims-client/src/views/capital/CapitalAllocate.vue?vuetypescriptsetuptruelang.ts. This is most likely unintended because it can break your application at runtime. If you do want to externalize this module explicitly add it to build.rollupOptions.external at viteLog (file:///D:/MyCode/wylims-jm/lims-client/node_modules/vite/dist/node/chunks/dep-Bu492Fnd.js:46363:15) at onRollupLog (file:///D:/MyCode/wylims-jm/lims-client/node_modules/vite/dist/node/chunks/dep-Bu492Fnd.js:46413:5) at onLog (file:///D:/MyCode/wylims-jm/lims-client/node_modules/vite/dist/node/chunks/dep-Bu492Fnd.js:46061:7) at file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:20803:32 at Object.logger [as onLog] (file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:22683:9) at ModuleLoader.handleInvalidResolvedId (file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:21429:26) at file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:21387:26 ERROR: build-only exited with 1. PS D:\MyCode\wylims-jm\lims-clientvue3 vite打包报错 vite v6.3.6 building for production... ✓ 1646 modules transformed. ✗ Build failed in 13.09s error during build: [vite]: Rollup failed to resolve import node_modules/axios/index.cjs from D:/MyCode/wylims-jm/lims-client/src/views/capital/CapitalAllocate.vue?vuetypescriptsetuptruelang.ts. This is most likely unintended because it can break your application at runtime. If you do want to externalize this module explicitly add it to build.rollupOptions.external at viteLog (file:///D:/MyCode/wylims-jm/lims-client/node_modules/vite/dist/node/chunks/dep-Bu492Fnd.js:46363:15) at onRollupLog (file:///D:/MyCode/wylims-jm/lims-client/node_modules/vite/dist/node/chunks/dep-Bu492Fnd.js:46413:5) at onLog (file:///D:/MyCode/wylims-jm/lims-client/node_modules/vite/dist/node/chunks/dep-Bu492Fnd.js:46061:7) at file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:20803:32 at Object.logger [as onLog] (file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:22683:9) at ModuleLoader.handleInvalidResolvedId (file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:21429:26) at file:///D:/MyCode/wylims-jm/lims-client/node_modules/rollup/dist/es/shared/node-entry.js:21387:26 ERROR: build-only exited with 1. PS D:\MyCode\wylims-jm\lims-client你在打包时遇到的错误是因为在CapitalAllocate.vue文件中有一行导入语句使用了错误的路径tsimport ... from node_modules/axios/index.cjsVite / Rollup 无法解析这个路径因为正确的导入方式应该使用包名而不是指向node_modules内部的物理文件路径。解决方案1. 修改错误的导入语句推荐打开src/views/capital/CapitalAllocate.vue找到类似下面的代码ts// ❌ 错误写法 import axios from node_modules/axios/index.cjs // 或 import * as axios from node_modules/axios/index.cjs改为ts// ✅ 正确写法 import axios from axios如果你的代码中使用了其他 axios 相关的具名导入也一并改为标准方式tsimport axios, { AxiosInstance, AxiosResponse } from axios2. 确认 axios 已安装在项目根目录执行bashnpm install axios # 或 yarn add axios3. 清理缓存并重新打包bash# 删除 node_modules/.vite 缓存 rm -rf node_modules/.vite # 重新打包 npm run build如果你确实需要导入.cjs文件不推荐某些特殊场景下如使用 CommonJS 版本的 axios你可以通过 Vite 配置来允许这种导入但不推荐因为会破坏 ES 模块的最佳实践。如果坚持这样做可以修改vite.config.tstsimport { defineConfig } from vite export default defineConfig({ build: { rollupOptions: { external: [node_modules/axios/index.cjs] // 告诉 Rollup 不要解析它 } }, // 同时需要为开发服务器添加别名 resolve: { alias: { node_modules/axios/index.cjs: axios } } })但这样只是绕过了错误并没有真正解决问题依然可能导致运行时错误。强烈建议使用第一种方案改正导入语句。补充为什么会出现这种错误可能是有人手动复制了物理路径或者某些自动导入工具生成了错误的路径。Vite 在处理node_modules中的文件时期望通过包名如axios来解析而不是直接写文件系统路径。