Vite Library模式打包后为什么多出.eslintrc.js文件?

夏侯瑞娜 阅读 56

在用Vite的Library模式打包组件库时,发现生成的dist目录里多了一个.eslintrc.js文件,但配置里没配置要包含它。尝试过设置assetsInclude排除,但还是会出现,这是什么情况?

我的vite.config.js配置是这样的:


export default defineConfig({
  build: {
    lib: {
      entry: path.resolve(__dirname, 'src/index.js'),
      name: 'MyLib',
      fileName: (format) => `mylib.${format}.js`
    },
    rollupOptions: {
      external: ['vue'],
      output: {
        globals: { vue: 'Vue' }
      }
    }
  }
})

打包后的dist目录正常有umd/cjs/esm文件,但额外出现了.eslintrc.js和.eslintrc.js.map,导致部署时出错。清理过node_modules和缓存都没用,是不是Library模式有特殊配置?

我来解答 赞 9 收藏
二维码
手机扫码查看
2 条解答
Good“昊沅
检查一下项目根目录有没有 .eslintrc.js 文件被意外打包了。Vite 默认会把根目录的一些配置文件自动包含进去,尤其是 Library 模式下。

解决方法:在 vite.config.jsbuild.rollupOptions 中添加 input 明确指定入口文件,并通过 output.assetFileNames 控制资源输出,防止配置文件被复制过去。

export default defineConfig({
build: {
lib: {
entry: path.resolve(__dirname, 'src/index.js'),
name: 'MyLib',
fileName: (format) => mylib.${format}.js
},
rollupOptions: {
input: path.resolve(__dirname, 'src/index.js'), // 明确输入
external: ['vue'],
output: {
globals: { vue: 'Vue' },
assetFileNames: 'assets/[name].[hash][extname]' // 控制资源输出路径
}
}
}
});
点赞 4
2026-02-04 18:05
Designer°凌薇
这问题我遇到过,确实是 Vite 的 Library 模式搞出来的。它会默认把你 src 目录下的所有文件都打包进去,包括隐藏文件(比如 .eslintrc.js)。你现在的配置只处理了 entry,但没限制输入源。

代码给你:

import { defineConfig } from 'vite';
import path from 'path';

export default defineConfig({
build: {
lib: {
entry: path.resolve(__dirname, 'src/index.js'),
name: 'MyLib',
fileName: (format) => mylib.${format}.js
},
rollupOptions: {
input: path.resolve(__dirname, 'src/index.js'), // 明确指定 input
external: ['vue'],
output: {
globals: { vue: 'Vue' }
}
},
// 关键在这里:排除不需要的文件
excludeAssets: /.(eslint|prettier)rc.js$/,
}
});


另外,如果上面还不行,直接在项目根目录加个 .npmignore.gitignore,写上:

.eslintrc.js
.eslintrc.js.map


这样打包时就不会带上这些多余文件了。试一下吧,应该能解决。
点赞 4
2026-01-31 10:20