vite打包报错:The "path" argument must be of type string.

2,113 阅读2分钟

今天使用vite创建一个vue项目,配置了vite.config.js配置文件后,执行打包命令,然后报了以下的错误:

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at new NodeError (node:internal/errors:363:5)
    at validateString (node:internal/validators:119:11)
    at Object.resolve (node:path:167:9)
    at resolve (D:\项目资料-gitlab\APM-WEB-2.0\apm-web\node_modules\vite\dist\node\chunks\dep-c9998dc6.js:41569:42)
    at doBuild (D:\项目资料-gitlab\APM-WEB-2.0\apm-web\node_modules\vite\dist\node\chunks\dep-c9998dc6.js:41571:11)
    at async build (D:\项目资料-gitlab\APM-WEB-2.0\apm-web\node_modules\vite\dist\node\chunks\dep-c9998dc6.js:41552:16)
    at async CAC.<anonymous> (D:\项目资料-gitlab\APM-WEB-2.0\apm-web\node_modules\vite\dist\node\cli.js:738:9)

经过一段时间的排查发现时vite.config.js文件里面的打包配置有问题

build: {
    //浏览器兼容性  "esnext"|"modules"
    target: "modules",
    //指定输出路径
    outDir: "dist",
    //生成静态资源的存放路径
    assetsDir: "assets",
    //小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求。设置为 0 可以完全禁用此项
    assetsInlineLimit: 4096,
    //启用/禁用 CSS 代码拆分
    cssCodeSplit: true,
    // //构建后是否生成 source map 文件
    sourcemap: false,
    //自定义底层的 Rollup 打包配置
    rollupOptions: {},
    //@rollup/plugin-commonjs 插件的选项
    commonjsOptions: {},
    // //构建的库
    // lib: {},
    //当设置为 true,构建后将会生成 manifest.json 文件
    manifest: false,
    // 设置为 false 可以禁用最小化混淆,
    // 或是用来指定使用哪种混淆器
    // boolean | 'terser' | 'esbuild'
    minify: "terser", //terser 构建后文件体积更小
    //传递给 Terser 的更多 minify 选项。
    terserOptions: {},
    //设置为 false 来禁用将构建后的文件写入磁盘
    write: true,
    //默认情况下,若 outDir 在 root 目录下,则 Vite 会在构建时清空该目录。
    emptyOutDir: true,
    //启用/禁用 brotli 压缩大小报告
    brotliSize: true,
    //chunk 大小警告的限制
    chunkSizeWarningLimit: 500
  },

然后问题最终出现在build配置下的lib,如图

image.png

只需要把lib注释掉就行了!!!