1 Star 0 Fork 18

SyncGithub / nf-press-edit_帮助文档的管理平台

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
vite.config.js 4.97 KB
一键复制 编辑 原始数据 按行查看 历史
% 提交于 2022-03-19 18:54 . 加载组件,在线写代码
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
// CDN打包用
// import commonjs from "rollup-plugin-commonjs"
// import externalGlobals from "rollup-plugin-external-globals"
// 全局对象
// const globals = externalGlobals({
// "element-plus": "element",
// vue: "Vue"
//})
import { resolve } from 'path' // 主要用于alias文件路径别名
const pathResolve = (dir) => resolve(__dirname, '.', dir)
// md 编辑器需要的 代码高亮功能
import prismjs from 'vite-plugin-prismjs'
// 库模式
const lib = defineConfig({
plugins: [
vue(),
prismjs({
languages: ['json', 'js','html', 'sql', 'xml'], // all
})
],
// 打包配置
build: {
lib: {
entry: resolve(__dirname, 'lib/main.js'),
name: 'nfPressEdit',
format: ['es'],
fileName: (format) => `nf-press-edit.${format}.js`
},
sourcemap: true,
rollupOptions: {
// 确保外部化处理那些你不想打包进库的依赖
external: [
'vue',
'axios',
'@naturefw/nf-tool',
'@naturefw/nf-state',
'@naturefw/storage',
'@naturefw/ui-core',
'@naturefw/ui-elp',
'element-plus',
'@element-plus/icons-vue',
'@kangc/v-md-editor',
]
}
}
})
// 库模式
const lib_umd = defineConfig({
plugins: [
vue(),
prismjs({
languages: ['json', 'js','html', 'sql'], // all
})
],
// 打包配置
build: {
outDir: `dist_umd`,
lib: {
entry: resolve(__dirname, 'lib/main-umd.js'),
name: 'nfPressEdit',
format: ['es', 'umd'],
fileName: (format) => `nf-press-edit.${format}.js`
},
sourcemap: true,
rollupOptions: {
// 确保外部化处理那些你不想打包进库的依赖
external: [
'vue',
'axios',
// '@naturefw/nf-tool',
'@naturefw/nf-state',
'@naturefw/storage',
'@naturefw/ui-core',
'@naturefw/ui-elp',
'element-plus'
],
output: {
// 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
globals: {
vue: 'Vue',
'axios': 'axios',
// '@naturefw/nf-tool': 'nfTool',
'@naturefw/nf-state': 'nfState',
'@naturefw/storage': 'nfWebStorage',
'@naturefw/ui-core': 'nfUICore',
'@naturefw/ui-elp': 'nfUIElp',
'element-plus': 'ElementPlus'
}
}
}
}
})
// 开发模式、生产模式
const project = (url) => {
return defineConfig({
optimizeDeps: {
include: ['@kangc/v-md-editor/lib/theme/vuepress.js'],
},
plugins: [
vue(),
prismjs({
languages: ['json', 'js','html', 'sql', 'xml'], // all
})
],
devtools: true,
resolve: {
alias: {
'/nf-press-edit': pathResolve('lib/main-umd.js'), // 编辑文档的库
'/@': resolve(__dirname, '.', 'src')
}
},
base: url,
// 打包配置
build: {
sourcemap: true,
outDir: 'distp', //指定输出路径
assetsDir: 'static/img/', // 指定生成静态资源的存放路径
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
const arr = id.toString().split('node_modules/')[1].split('/')
switch(arr[0]) {
// case '@kangc': // md 编辑器
case 'axios':
case '@popperjs':
case '@vue':
case 'element-plus': // UI 库
case '@element-plus': // 图标
case '@naturefw': // 自然框架
return '_' + arr[0]
break
default :
return '__vendor'
break
}
}
},
chunkFileNames: 'static/js1/[name]-[hash].js',
entryFileNames: 'static/js2/[name]-[hash].js',
assetFileNames: 'static/[ext]/[name]-[hash].[ext]'
},
brotliSize: false, // 不统计
target: 'esnext',
minify: 'esbuild' // 混淆器,terser构建后文件体积更小
}
},
// 本地运行配置,及反向代理配置
server: {
cors: true, // 默认启用并允许任何源
open: true, // 在服务器启动时自动在浏览器中打开应用程序
// 反向代理配置,注意rewrite写法,开始没看文档在这里踩了坑
proxy: {
'/api': {
target: 'http://127.0.0.1:6000/', // 代理接口
// rewrite: (path) => path // .replace(/^\/api/, ''),
changeOrigin: true
}
}
}
})
}
export default ({ mode }) => {
const url = loadEnv(mode, process.cwd()).VITE_BASEURL
switch (url) {
case 'lib': // 打包库文件,纯es,分开打包
return lib
break;
case 'libumd': // 打包库文件,es、umd合并打包
return lib_umd
break;
default: // 开发模式、生产模式
return project(url)
break;
}
}
1
https://gitee.com/sync-github/nf-press-edit.git
git@gitee.com:sync-github/nf-press-edit.git
sync-github
nf-press-edit
nf-press-edit_帮助文档的管理平台
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891