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({ |
export default defineConfig(async () => { |
||||
application: async ({ mode }) => { |
const { appTitle, port, ...envConfig } = await loadAndConvertEnv(); |
||||
const envConfig = await loadAndConvertEnv(); |
return { |
||||
|
application: { |
||||
return { |
|
||||
...envConfig, |
...envConfig, |
||||
importmap: false, |
importmap: false, |
||||
importmapOptions: { |
importmapOptions: defaultImportmapOptions, |
||||
// 通过 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' }, |
|
||||
], |
|
||||
}, |
|
||||
pwa: false, |
pwa: false, |
||||
pwaOptions: { |
pwaOptions: getDefaultPwaOptions(appTitle), |
||||
manifest: { |
}, |
||||
description: |
vite: { |
||||
'Vben Admin Pro is a modern admin dashboard template based on Vue 3. ', |
server: { |
||||
icons: [ |
port, |
||||
{ |
proxy: { |
||||
sizes: '192x192', |
'/api': { |
||||
src: 'https://cdn.jsdelivr.net/npm/@vbenjs/static-source@0.1.3/source/pwa-icon-192.png', |
changeOrigin: true, |
||||
type: 'image/png', |
rewrite: (path) => path.replace(/^\/api/, ''), |
||||
}, |
// 代理目标地址 - backend-mock 项目 |
||||
{ |
target: 'http://localhost:5320/api', |
||||
sizes: '512x512', |
ws: true, |
||||
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, |
|
||||
}, |
}, |
||||
}, |
}, |
||||
}, |
}, |
||||
}, |
}; |
||||
}); |
}); |
||||
|
|||||
@ -1,3 +1,4 @@ |
|||||
export * from './config'; |
export * from './config'; |
||||
|
export * from './options'; |
||||
export * from './plugins'; |
export * from './plugins'; |
||||
export { loadAndConvertEnv } from './utils/env'; |
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 |
# @vben-core/forward |
||||
|
|
||||
该目录内的包,可直接被app所引用 |
该目录内的包,可直接被app所引用,其是项目基础功能的一层抽象。允许轻微的副作用耦合,如`locales`的集成。 |
||||
|
|
||||
|
## 注意事项 |
||||
|
|
||||
|
- `forward` 内的包不允许相互引用,有相互引用的情况请考虑是否放到`packages/effects`下 |
||||
|
|||||
@ -1,7 +1,9 @@ |
|||||
import { defineConfig } from '@vben/vite-config'; |
import { defineConfig } from '@vben/vite-config'; |
||||
|
|
||||
export default defineConfig({ |
export default defineConfig(async () => { |
||||
vite: { |
return { |
||||
publicDir: 'src/scss-bem', |
vite: { |
||||
}, |
publicDir: 'src/scss-bem', |
||||
|
}, |
||||
|
}; |
||||
}); |
}); |
||||
|
|||||
@ -1,16 +1,18 @@ |
|||||
import { defineConfig } from '@vben/vite-config'; |
import { defineConfig } from '@vben/vite-config'; |
||||
|
|
||||
export default defineConfig({ |
export default defineConfig(async () => { |
||||
vite: { |
return { |
||||
build: { |
vite: { |
||||
lib: { |
build: { |
||||
entry: { |
lib: { |
||||
antd: 'src/antd/index.ts', |
entry: { |
||||
index: 'src/index.ts', |
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