Vite打包时如何正确配置Rollup排除node_modules中的特定包?
我在用 Vite 构建 Vue3 项目,想通过 Rollup 配置把某个第三方库(比如 lodash-es)从打包结果中排除,但试了几次都没成功,build 后还是被打包进去了。
我查了文档,在 vite.config.js 里加了 build.rollupOptions.external,但好像没生效。是不是写法有问题?下面是我的组件代码:
<script setup>
import { debounce } from 'lodash-es'
const handleInput = debounce(() => {
console.log('debounced')
}, 300)
</script>
<template>
<input @input="handleInput" />
</template>
我期望的是 lodash-es 不被打包,而是通过 CDN 引入,但目前它还是被 rollup 打进 chunk 里了。
记得在 html 里用 script 标签通过 CDN 引入 lodash-es,顺序要在你的打包文件之前。这玩意儿有时候就是这么奇怪,配置对了就好。
然后再通过 vite 的插件机制配置 cdn 引入。要是还打包进去,检查下是不是其他地方又引用了这个包。熬夜调试最烦这种问题了,祝你好运。