UNPKG

create-cocos-plugin

Version:
70 lines (67 loc) 2.69 kB
import { cocosPanelConfig, cocosPanelCss } from '@cocos-fe/vite-plugin-cocos-panel'; import vue from '@vitejs/plugin-vue'; import { nodeExternals } from 'rollup-plugin-node-externals'; import AutoImport from 'unplugin-auto-import/vite'; import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'; import Components from 'unplugin-vue-components/vite'; import { defineConfig } from 'vite'; export default defineConfig(({ mode }) => { /** * 注意事项: * vite 在构建 lib 模式的时候,是没有 dev 服务的,dev 主要用于 web 应用 * 所以在 package.json 的 scripts 里 dev 和 build 都是执行 vite build * 只是在 dev 的脚本里,手动指定了 "--mode development" https://cn.vitejs.dev/guide/env-and-mode.html * 然后在 development 模式下,我们配置 watch 的配置 */ const isDev = mode === 'development'; return { build: { lib: { entry: { browser: './src/browser/index.ts', panel: './src/panels/panel.ts', }, formats: ['cjs'], fileName: (_, entryName) => `${entryName}.cjs`, }, watch: isDev ? { include: ['./src/**/*.ts', './src/**/*.vue', './src/**/*.css'], } : null, target: 'modules', minify: false, sourcemap: isDev ? 'inline' : false, }, plugins: [ vue({ template: { compilerOptions: { isCustomElement: (tag) => tag.startsWith('ui-'), }, }, }), nodeExternals({ builtins: true, // 排除 node 的内置模块 deps: false, // 将依赖打入 dist,发布的时候可以删除 node_modules devDeps: true, peerDeps: true, optDeps: true, }), cocosPanelConfig(), cocosPanelCss({ transform: (css) => { // element-plus 的全局变量是作用在 :root , 需要改成 :host // 黑暗模式它是在 html 添加 dark 类名,我们应该在最外层的 #app 添加 class="dark" return css.replaceAll(':root', ':host').replaceAll('html.dark', '#app.dark'); }, }), AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], }; });