20 changed files with 175 additions and 126 deletions
@ -1,59 +1,33 @@ |
|||
import { defineConfig, loadAndConvertEnv } from '@vben/vite-config'; |
|||
import { |
|||
defaultImportmapOptions, |
|||
defineConfig, |
|||
getDefaultPwaOptions, |
|||
loadAndConvertEnv, |
|||
} from '@vben/vite-config'; |
|||
|
|||
export default defineConfig({ |
|||
application: async ({ mode }) => { |
|||
const envConfig = await loadAndConvertEnv(); |
|||
|
|||
return { |
|||
export default defineConfig(async () => { |
|||
const { appTitle, port, ...envConfig } = await loadAndConvertEnv(); |
|||
return { |
|||
application: { |
|||
...envConfig, |
|||
importmap: false, |
|||
importmapOptions: { |
|||
// 通过 Importmap CDN 方式引入, |
|||
// 目前只有esm.sh源兼容性好一点,jspm.io对于 esm 入口要求高 |
|||
defaultProvider: 'esm.sh', |
|||
importmap: [ |
|||
{ name: 'vue' }, |
|||
{ name: 'pinia' }, |
|||
{ name: 'vue-router' }, |
|||
{ name: 'vue-i18n' }, |
|||
{ name: 'dayjs' }, |
|||
{ name: 'vue-demi' }, |
|||
], |
|||
}, |
|||
importmapOptions: defaultImportmapOptions, |
|||
pwa: false, |
|||
pwaOptions: { |
|||
manifest: { |
|||
description: |
|||
'Vben Admin Pro is a modern admin dashboard template based on Vue 3. ', |
|||
icons: [ |
|||
{ |
|||
sizes: '192x192', |
|||
src: 'https://cdn.jsdelivr.net/npm/@vbenjs/static-source@0.1.3/source/pwa-icon-192.png', |
|||
type: 'image/png', |
|||
}, |
|||
{ |
|||
sizes: '512x512', |
|||
src: 'https://cdn.jsdelivr.net/npm/@vbenjs/static-source@0.1.3/source/pwa-icon-512.png', |
|||
type: 'image/png', |
|||
}, |
|||
], |
|||
name: `Vben Admin Pro ${mode}`, |
|||
short_name: `Vben Admin Pro ${mode}`, |
|||
}, |
|||
}, |
|||
}; |
|||
}, |
|||
vite: { |
|||
server: { |
|||
proxy: { |
|||
'/api': { |
|||
changeOrigin: true, |
|||
rewrite: (path) => path.replace(/^\/api/, ''), |
|||
// 代理目标地址 - backend-mock 项目 |
|||
target: 'http://localhost:5320/api', |
|||
ws: true, |
|||
pwaOptions: getDefaultPwaOptions(appTitle), |
|||
}, |
|||
vite: { |
|||
server: { |
|||
port, |
|||
proxy: { |
|||
'/api': { |
|||
changeOrigin: true, |
|||
rewrite: (path) => path.replace(/^\/api/, ''), |
|||
// 代理目标地址 - backend-mock 项目 |
|||
target: 'http://localhost:5320/api', |
|||
ws: true, |
|||
}, |
|||
}, |
|||
}, |
|||
}, |
|||
}, |
|||
}; |
|||
}); |
|||
|
|||
@ -1,3 +1,4 @@ |
|||
export * from './config'; |
|||
export * from './options'; |
|||
export * from './plugins'; |
|||
export { loadAndConvertEnv } from './utils/env'; |
|||
|
|||
@ -0,0 +1,42 @@ |
|||
import type { Options as PwaPluginOptions } from 'vite-plugin-pwa'; |
|||
|
|||
import type { ImportmapPluginOptions } from './typing'; |
|||
|
|||
const isDevelopment = process.env.NODE_ENV === 'development'; |
|||
|
|||
const getDefaultPwaOptions = (name: string): Partial<PwaPluginOptions> => ({ |
|||
manifest: { |
|||
description: |
|||
'Vben Admin Pro is a modern admin dashboard template based on Vue 3. ', |
|||
icons: [ |
|||
{ |
|||
sizes: '192x192', |
|||
src: 'https://cdn.jsdelivr.net/npm/@vbenjs/static-source@0.1.3/source/pwa-icon-192.png', |
|||
type: 'image/png', |
|||
}, |
|||
{ |
|||
sizes: '512x512', |
|||
src: 'https://cdn.jsdelivr.net/npm/@vbenjs/static-source@0.1.3/source/pwa-icon-512.png', |
|||
type: 'image/png', |
|||
}, |
|||
], |
|||
name: `${name}o${isDevelopment ? ' dev' : ''}`, |
|||
short_name: `${name}${isDevelopment ? ' dev' : ''}`, |
|||
}, |
|||
}); |
|||
|
|||
const defaultImportmapOptions: ImportmapPluginOptions = { |
|||
// 通过 Importmap CDN 方式引入,
|
|||
// 目前只有esm.sh源兼容性好一点,jspm.io对于 esm 入口要求高
|
|||
defaultProvider: 'esm.sh', |
|||
importmap: [ |
|||
{ name: 'vue' }, |
|||
{ name: 'pinia' }, |
|||
{ name: 'vue-router' }, |
|||
{ name: 'vue-i18n' }, |
|||
{ name: 'dayjs' }, |
|||
{ name: 'vue-demi' }, |
|||
], |
|||
}; |
|||
|
|||
export { defaultImportmapOptions, getDefaultPwaOptions }; |
|||
@ -1,3 +1,7 @@ |
|||
# @vben-core/forward |
|||
|
|||
该目录内的包,可直接被app所引用 |
|||
该目录内的包,可直接被app所引用,其是项目基础功能的一层抽象。允许轻微的副作用耦合,如`locales`的集成。 |
|||
|
|||
## 注意事项 |
|||
|
|||
- `forward` 内的包不允许相互引用,有相互引用的情况请考虑是否放到`packages/effects`下 |
|||
|
|||
@ -1,7 +1,9 @@ |
|||
import { defineConfig } from '@vben/vite-config'; |
|||
|
|||
export default defineConfig({ |
|||
vite: { |
|||
publicDir: 'src/scss-bem', |
|||
}, |
|||
export default defineConfig(async () => { |
|||
return { |
|||
vite: { |
|||
publicDir: 'src/scss-bem', |
|||
}, |
|||
}; |
|||
}); |
|||
|
|||
@ -1,16 +1,18 @@ |
|||
import { defineConfig } from '@vben/vite-config'; |
|||
|
|||
export default defineConfig({ |
|||
vite: { |
|||
build: { |
|||
lib: { |
|||
entry: { |
|||
antd: 'src/antd/index.ts', |
|||
index: 'src/index.ts', |
|||
export default defineConfig(async () => { |
|||
return { |
|||
vite: { |
|||
build: { |
|||
lib: { |
|||
entry: { |
|||
antd: 'src/antd/index.ts', |
|||
index: 'src/index.ts', |
|||
}, |
|||
fileName: (_format, name) => `${name}.mjs`, |
|||
}, |
|||
fileName: (_format, name) => `${name}.mjs`, |
|||
}, |
|||
publicDir: 'src/bem', |
|||
}, |
|||
publicDir: 'src/bem', |
|||
}, |
|||
}; |
|||
}); |
|||
|
|||
Loading…
Reference in new issue