<script type="module" src="/src/main.ts"></script>
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
[vite] Internal server error: URI malformed
res = code.replace(/<%=\s+BASE_URL\s+%>/g, baseDir);
与Vue-cli相同,需要一个配置文件 vite.cofnig.js, 与原来的vue.config.js同级
npm i vite vite-plugin-vue2 -S
3.3 修改配置文件
"serve": "vite",
"build": "vite build",
import { defineConfig } from 'vite'
import { createVuePlugin } from 'vite-plugin-vue2'
// https://vitejs.dev/config/ 这一行可以增加编辑器代码提示
export default defineConfig({
plugins: [
createVuePlugin({
jsx: true, // 兼容项目中的jsx组件
vueTemplateOptions: {}
}),
],
resolve: {
extensions: ['.vue', '.js', '.ts', '.jsx', '.tsx', '.json'],
alias: [
{
find: '@',
replacement: '/src'
}
]
},
server: {
open: true, // 控制台直接打开浏览器
host: 'xxxx.jd.com', // 本地host
allowedHosts: ['.jd.com', '.jdwl.com', '.jd.co.th', '.jd.id'],
port: 80,
cors: true,
proxy: {
'/api': {
target: 'https://xxx.jd.com',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '/api')
}
}
},
})
import.meta.env.MODE: {string} 应用运行的模式。
import.meta.env.BASE_URL: {string} 部署应用时的基本 URL。他由base配置项决定。
import.meta.env.PROD: {boolean} 应用是否运行在生产环境。
import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与 import.meta.env.PROD相反)。
export default defineConfig({
define: {
'process.env': {}
},
})
// polyfills
if (typeof (window as any).global === 'undefined') {
;(window as any).global = window
}
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
additionalData: '$ossHostVariable: \'import.meta\u200b.env.VUE_APP_OSS_HOST\';'
}
}
}
})
import path from 'path'
// 替换成
import path from 'path-broswserfiy'
import requireTransform from 'vite-plugin-require-transform'
export default defineConfig({
plugins: [
requireTransform({})
]
})
const load = import.meta.glob('@/views/**/index.vue');
export const constantRoutes: any = [
{
path: '/404',
component: load['404']
},
]
const SPLIT_CHUNK_CONFIG = [
{
match: /[\\/]src[\\/]_?common(.*)/,
output: 'chunk-common',
},
{
match: /[\\/]src[\\/]_?component(.*)/,
output: 'chunk-component',
},
];
const rollupOptions = {
output: {
chunkFileNames: 'assets/js/[name]-[hash].js',
entryFileNames: 'assets/js/[name]-[hash].js',
assetFileNames: 'assets/static/[name]-[hash].[ext]',
manualChunks(id) {
for (const item of SPLIT_CHUNK_CONFIG) {
const { match, output } = item;
if (match.test(id)) {
return output;
}
}
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString();
}
},
},
},