78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
import {defineConfig} from 'vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import vueJSX from '@vitejs/plugin-vue-jsx'
|
|
import banner from 'vite-plugin-banner'
|
|
import cssnano from 'cssnano'
|
|
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
|
import {author, name, version} from './package.json'
|
|
|
|
const extnedsPlugins = [];
|
|
const outDir = 'dist/render/vant';
|
|
|
|
function getBanner(banner, pkg) {
|
|
if (!banner || typeof banner === 'string') {
|
|
return banner || '';
|
|
}
|
|
|
|
banner = {...pkg, ...(banner === true ? {} : banner)};
|
|
|
|
const author = banner.author
|
|
|
|
return {
|
|
content: (
|
|
'/*!\n' +
|
|
' * FormCreate商业版可视化表单设计器-让表单设计更简单\n' +
|
|
` * ${banner.name} v${banner.version}\n` +
|
|
` * (c) ${author || ''}\n` +
|
|
' * license 仅限于被授权主体(个人、企业或组织)使用\n' +
|
|
' */'
|
|
),
|
|
outDir,
|
|
};
|
|
}
|
|
|
|
const __banner__ = {
|
|
author: `2018-${new Date().getFullYear()} ${author} https://form-create.com/`,
|
|
name,
|
|
version
|
|
}
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig({
|
|
build: {
|
|
lib: {
|
|
entry: 'src/form/mobile.js',
|
|
name: 'formCreateMobile',
|
|
fileName: format => `form-create.${format}.js`,
|
|
},
|
|
rollupOptions: {
|
|
output: {
|
|
exports: 'named',
|
|
globals: {
|
|
vue: 'Vue',
|
|
vant: 'vant',
|
|
'ant-design-vue': 'antd',
|
|
}
|
|
},
|
|
external: [
|
|
'vue',
|
|
'vant',
|
|
'ant-design-vue',
|
|
],
|
|
|
|
},
|
|
outDir,
|
|
brotliSize: true,
|
|
},
|
|
css: {
|
|
postcss: {
|
|
plugins: [
|
|
cssnano({
|
|
preset: 'advanced'
|
|
})
|
|
]
|
|
}
|
|
},
|
|
plugins: [vue(), vueJSX(), banner(getBanner(__banner__)), cssInjectedByJsPlugin(), ...extnedsPlugins]
|
|
})
|