使用Vite构建Vue项目时如何排除指定JS文件?求解决方案
问题:Vite构建Vue项目时排除可动态修改的单词表JS文件
我正在用Vite构建Vue.js应用,有一批仅作为单词游戏单词表的.js文件——这些文件是纯数据,且服务器会随时修改,希望构建时把它们排除在打包产物之外。这些文件放在src/assets/words/子文件夹中,我直接在index.html里引入了它们:
<body> <script type="module" src="./src/assets/words/3letter.js"></script> ...... <script type="module" src="./src/assets/words/9letter.js"></script> <div id="app" align="center"> </div> <script type="module" src="/src/main.js"></script>
查了相关资料后,我尝试修改vite.config.js,用了两种方式都没效果:
export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, optimizeDeps: { exclude: [ './src/assets/words/*.js' ], }, // build: { // commonjsOptions: { // exclude: [ // './src/assets/words/*.js' // ] // }, // } })
遇到的问题:
- 用
optimizeDeps.exclude和build.commonjsOptions.exclude都无效,执行npm run build时,单词文件仍被打包进产物,且index.html中的引用被移除 - 如果移除script标签里的
type="module",构建会报错:
script src="./src/assets/words/3letter.js" in "/index.html" can't be bundled without type="module" attribute
此时index.html里的引用没被移除,但单词表还是被打包进最终的大JS文件里。
内容的提问来源于stack exchange,提问作者quilkin
相关产品推荐
相关产品推荐

