import path from 'path' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import replace from '@rollup/plugin-replace' import { isCustomElement } from '../uni-shared' const moduleAlias = require('module-alias') moduleAlias.addAlias( '@vue/babel-plugin-jsx', path.join(__dirname, 'lib/babel-plugin-jsx') ) const vueJsx = require('@vitejs/plugin-vue-jsx') function resolve(file: string) { return path.resolve(__dirname, file) } export default defineConfig({ root: __dirname, define: { global: 'window', __DEV__: `(process.env.NODE_ENV !== 'production')`, __TEST__: false, __PLATFORM__: JSON.stringify('h5'), __NODE_JS__: `import.meta.env.SSR`, }, resolve: { alias: [ { find: '@dcloudio/uni-api', replacement: resolve('../uni-api/src/index.ts'), }, { find: '@dcloudio/uni-vue', replacement: resolve('../uni-vue/src/index.ts'), }, { find: '@dcloudio/uni-core', replacement: resolve('../uni-core/src'), }, { find: '@dcloudio/uni-components', replacement: resolve('../uni-components/src/index.ts'), }, { find: '@dcloudio/uni-platform', replacement: resolve('./src/platform/index.ts'), }, ], }, plugins: [ vue({ template: { compilerOptions: { isCustomElement, }, }, }), vueJsx({ optimize: true, isCustomElement }), ], build: { minify: false, lib: { entry: path.resolve(__dirname, 'src/index.ts'), formats: ['es', 'cjs'], }, assetsDir: '.', rollupOptions: { // input: path.resolve(__dirname, 'src/index.ts'), external(source) { if ( [ 'vue', 'vue-router', '@vue/shared', '@dcloudio/uni-i18n', '@dcloudio/uni-shared', ].includes(source) ) { return true } if (source.startsWith('@dcloudio/uni-h5/style')) { return true } }, preserveEntrySignatures: 'strict', plugins: [ // replace({ // values: { // // extend: `/*#__PURE__*/ extend`, // // defineOnApi: `/*#__PURE__*/ defineOnApi`, // // defineOffApi: `/*#__PURE__*/ defineOffApi`, // // defineTaskApi: `/*#__PURE__*/ defineTaskApi`, // // defineSyncApi: `/*#__PURE__*/ defineSyncApi`, // // defineAsyncApi: `/*#__PURE__*/ defineAsyncApi`, // }, // preventAssignment: true, // }), ], // output: { // dir: path.resolve(__dirname, 'dist'), // }, }, }, })