vite的配置
import {defineConfig} from "vite" import vue from "@vitejs/plugin-vue" import path from "path"
export default defineConfig({ plugins: [vue()], resolve: { alias: { "@/": new URL("./src/", import.meta.url).pathname } }, build: { cssCodeSplit: true, lib: { entry: path.resolve(__dirname, "./src/components/index.ts"), name: "vue3-gird-layout", fileName: "vue3-grid-layout", formats: ["es", "umd"] }, rollupOptions: { external: ["vue"],
output: { globals: { vue: "Vue" } } } } })
|
官方文档对这个字段的解析(https://cn.vitejs.dev/config/build-options.html#build-assetsinlinelimit)
启用/禁用 CSS 代码拆分。当启用时,在异步 chunk 中导入的 CSS 将内联到异步 chunk 本身,并在其被加载时插入。
如果禁用,整个项目中的所有 CSS 将被提取到一个 CSS 文件中。
注意: 如果指定了 build.lib,build.cssCodeSplit 会默认为 false。
因此,手动改为true,但是发现没有生效
然后看了下vite的版本,由于最近vite更新到3.x了,但是这个功能可能被干掉了,然后文档没有更新? 我猜测时这样
因此,只能另寻他法,既然不能生成行内样式,那么就在打包的js代码中加入下面的代码
然后这个让vite插件做好了
因此,找到vite-plugin-libcss
修改vite.config.ts
import {defineConfig} from "vite" import vue from "@vitejs/plugin-vue" import path from "path" import libCss from "vite-plugin-libcss" import dts from "vite-plugin-dts"
export default defineConfig({ plugins: [vue(), libCss(), dts()], resolve: { alias: { "@/": new URL("./src/", import.meta.url).pathname } }, build: { lib: { entry: path.resolve(__dirname, "./src/components/index.ts"), name: "vue3-gird-layout", fileName: "vue3-grid-layout", formats: ["es", "umd"] }, rollupOptions: { external: ["vue"],
output: { globals: { vue: "Vue" } } } } })
|
最终打包成功, 引入组件,不再需要再引入组件的css代码