1 Star 0 Fork 1

hr_work/vite-vue3-multipage-main

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
vite.config.ts 3.21 KB
一键复制 编辑 原始数据 按行查看 历史
yuqy 提交于 2024-01-19 09:48 . init
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import viteEslint from 'vite-plugin-eslint' //引入eslint
import viteStylelint from '@amatlash/vite-plugin-stylelint'
import viteImagemin from 'vite-plugin-imagemin' //引入图片压缩插件
import path from 'path'
// 引入多页面配置文件
const project = require('./scripts/multiPages.json')
// 获取是否是生产环境
// const isProduction = process.env.NODE_ENV === 'production'
// 多页面配置开始-------------------------------------- 获取pnpm run dev后缀来运行对应的项目
const npm_config_project = process.env.npm_config_project
let filterProjects = []
if (npm_config_project) {
// 这一步操作主要是处理要单独打包和单独运行的配置项
filterProjects = project.filter((ele) => {
// 过滤出用户输入的单独打包的配置项
return ele.chunk.toLowerCase() === npm_config_project.toLowerCase()
})
console.log(`--------单独构建:${filterProjects[0]['chunkName']}--------`)
} else {
filterProjects = project
}
/** 多页面配置 */
const multiPages = (p) => {
const pages = {}
p.forEach((ele) => {
const htmlUrl = path.resolve(
__dirname,
`src/Project/${ele.chunk}/index.html`
)
pages[ele.chunk] = htmlUrl
})
console.log(pages)
return pages
}
/**多页面打包 */
const multiBuild = (p) => {
const buildOutputConfigs = []
p.forEach((ele) => {
// 配置多出口打包
buildOutputConfigs.push({
dir: `dist/${ele.chunk}/`,
assetFileNames: '[ext]/[name]-[hash].[ext]',
chunkFileNames: 'js/[name]-[hash].js',
entryFileNames: 'js/[name]-[hash].js'
})
})
return buildOutputConfigs
}
// 多页面配置结束 --------------------------------------
// https://vitejs.dev/config/
export default defineConfig({
//把root指向/src/Project/,编译时在此目录下编译, build时生成在dist内生成对应的文件
root: `./src/Project/${filterProjects[0]['chunk']}`,
//设置静态资源相对路径,index.html和login.html等入口文件的静态资源读取相对路径
base: './',
plugins: [
vue(),
viteEslint(),
viteStylelint({ exclude: /node_modules/ }),
viteImagemin({
// 无损压缩配置,无损压缩下图片质量不会变差
optipng: {
optimizationLevel: 7
},
// 有损压缩配置,有损压缩下图片质量可能会变差
pngquant: {
quality: [0.8, 0.9]
},
// svg 优化
svgo: {
plugins: [
{
name: 'removeViewBox'
},
{
name: 'removeEmptyAttrs',
active: false
}
]
}
})
],
resolve: {
alias: {
'@': path.join(__dirname, './src'),
'@Project': path.join(__dirname, './src/Project')
}
},
build: {
rollupOptions: {
//配置多页应用程序入口文件
input: multiPages(filterProjects),
//打包到目标目录
output: multiBuild(filterProjects)
}
},
server: {
host: 'localhost', // 指定服务器主机名
port: 8001, // 指定服务器端口
open: true, // 在服务器启动时自动在浏览器中打开应用程序
https: false // 是否开启 https
}
})
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/hr_work/vite-vue3-multipage-main.git
[email protected]:hr_work/vite-vue3-multipage-main.git
hr_work
vite-vue3-multipage-main
vite-vue3-multipage-main
master

搜索帮助