121 lines
4.6 KiB
JavaScript
121 lines
4.6 KiB
JavaScript
|
import {
|
|||
|
defineConfig
|
|||
|
} from "vite";
|
|||
|
import {
|
|||
|
loadEnv
|
|||
|
} from 'vite';
|
|||
|
import copy from 'rollup-plugin-copy';
|
|||
|
import vue from "@vitejs/plugin-vue";
|
|||
|
import ElementPlus from "unplugin-element-plus/vite";
|
|||
|
//import postcsspxtoviewport from 'postcss-px-to-viewport';
|
|||
|
import jqueryPlugin from './vite-plugin-jquery';
|
|||
|
const {
|
|||
|
resolve
|
|||
|
} = require("path");
|
|||
|
/**
|
|||
|
* @type {import('vite').UserConfig}
|
|||
|
*/
|
|||
|
export default defineConfig(({
|
|||
|
command,
|
|||
|
mode
|
|||
|
}) => {
|
|||
|
let vueI18n = {};
|
|||
|
if (command === "serve") {
|
|||
|
vueI18n["vue-i18n"] = "vue-i18n/dist/vue-i18n.cjs.js"; //解决dev运行警告You are running the esm-bundler build of vue-i18n.
|
|||
|
}
|
|||
|
return {
|
|||
|
plugins: [
|
|||
|
vue(),
|
|||
|
jqueryPlugin(),
|
|||
|
ElementPlus({
|
|||
|
useSource: true,
|
|||
|
}),
|
|||
|
copy({
|
|||
|
targets: [
|
|||
|
// {
|
|||
|
// src: 'node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer-lib.min.js',
|
|||
|
// dest: 'public/js'
|
|||
|
// },
|
|||
|
{
|
|||
|
src: 'node_modules/@liveqing/liveplayer-v3/dist/component/liveplayer-lib.min.js',
|
|||
|
dest: 'public/js'
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
|
|||
|
]
|
|||
|
})
|
|||
|
],
|
|||
|
// base: loadEnv(mode, process.cwd()).opendoorUrl,
|
|||
|
resolve: {
|
|||
|
alias: {
|
|||
|
"~/": `${resolve(__dirname, "src")}/`,
|
|||
|
...vueI18n,
|
|||
|
'@': resolve('src'),
|
|||
|
|
|||
|
},
|
|||
|
extensions: [
|
|||
|
'.mjs',
|
|||
|
'.js',
|
|||
|
'.ts',
|
|||
|
'.jsx',
|
|||
|
'.tsx',
|
|||
|
'.json',
|
|||
|
'.vue'
|
|||
|
]
|
|||
|
},
|
|||
|
// base: "./",
|
|||
|
server: {
|
|||
|
host: "127.0.0.1",
|
|||
|
// host: "192.168.1.105",
|
|||
|
port: 8086,
|
|||
|
open: true,
|
|||
|
https: false, // 开启https服务
|
|||
|
// 反向代理
|
|||
|
// proxy: {
|
|||
|
// "/api": {
|
|||
|
// target: "http://192.168.100.96:18000/",
|
|||
|
// changeOrigin: true,
|
|||
|
// rewrite: (path) => path.replace(/^\/api/, ""),
|
|||
|
// },
|
|||
|
// },
|
|||
|
},
|
|||
|
css: {
|
|||
|
preprocessorOptions: {
|
|||
|
scss: {
|
|||
|
additionalData: `@use "@/styles/element/index.scss" as *;`,
|
|||
|
},
|
|||
|
},
|
|||
|
// postcss: {
|
|||
|
// plugins: [
|
|||
|
// // 需要注意的是,include这个属性,现在是不能用的,
|
|||
|
// //postcss-px-to-viewport官方虽然更新了文档介绍include的使用方法,但是源码迟迟没有更新,
|
|||
|
// //所以需要另外再安装一个包,也就是先使用github仓库的代码
|
|||
|
// // npm i https://github.com/evrone/postcss-px-to-viewport --save-dev
|
|||
|
// postcsspxtoviewport({
|
|||
|
// // viewportWidth: "1920", //视窗的宽度,对应的是我们设计稿的宽度
|
|||
|
// viewportWidth: 1920, //视窗的宽度,对应的是我们设计稿的宽度
|
|||
|
// viewportHeight: 968, // 视窗的高度
|
|||
|
// //viewportHeight: "750", // 视窗的高度
|
|||
|
// unitToConvert: 'px', // 要转化的单位
|
|||
|
// // viewportWidth: 750, // UI设计稿的宽度
|
|||
|
// unitPrecision: 6, // 转换后的精度,即小数点位数
|
|||
|
// propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
|
|||
|
// viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
|
|||
|
// fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
|
|||
|
// selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名,
|
|||
|
// minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
|
|||
|
// mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
|
|||
|
// replace: true, // 是否转换后直接更换属性值
|
|||
|
// // exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
|
|||
|
// // exclude: [],
|
|||
|
// include: [/\/src\/views\/screen\//], //只转换匹配的文件 D:\SKZH\新的科大管控系统后台\brisk-admin-main - pinia\src\views\screen\kqscreen.vue
|
|||
|
// landscape: false // 是否处理横屏情况
|
|||
|
// })
|
|||
|
// ]
|
|||
|
// },
|
|||
|
//开发过程中是否启sourcemap
|
|||
|
devSourcemap: true,
|
|||
|
},
|
|||
|
};
|
|||
|
});
|