Files
stock-h5/vite.config.ts.timestamp-1719196917102-b76a7f7c00d2a.mjs
2026-03-19 15:02:23 +08:00

120 lines
14 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// vite.config.ts
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'file:///E:/code/vue3-h5-stock/node_modules/vite/dist/node/index.js'
import vue from 'file:///E:/code/vue3-h5-stock/node_modules/@vitejs/plugin-vue/dist/index.mjs'
import AutoImport from 'file:///E:/code/vue3-h5-stock/node_modules/unplugin-auto-import/dist/vite.js'
import Components from 'file:///E:/code/vue3-h5-stock/node_modules/unplugin-vue-components/dist/vite.js'
import { VantResolver } from 'file:///E:/code/vue3-h5-stock/node_modules/@vant/auto-import-resolver/dist/index.esm.mjs'
import externalGlobals from 'file:///E:/code/vue3-h5-stock/node_modules/rollup-plugin-external-globals/index.js'
import { createHtmlPlugin } from 'file:///E:/code/vue3-h5-stock/node_modules/vite-plugin-html/dist/index.mjs'
import viteCompression from 'file:///E:/code/vue3-h5-stock/node_modules/vite-plugin-compression/dist/index.mjs'
var __vite_injected_original_import_meta_url = 'file:///E:/code/vue3-h5-stock/vite.config.ts'
function getDir() {
const d = /* @__PURE__ */ new Date()
const yy = d.getFullYear()
const MM = d.getMonth() + 1 >= 10 ? d.getMonth() + 1 + '' : '0' + (d.getMonth() + 1)
const DD = d.getDate() >= 10 ? d.getDate() + '' : '0' + d.getDate()
const h = d.getHours() >= 10 ? d.getHours() + '' : '0' + d.getHours()
const mm = d.getMinutes() >= 10 ? d.getMinutes() + '' : '0' + d.getMinutes()
const version = yy + MM + DD + h + mm
return version + '/static'
}
var dir = getDir()
var cdn = {
css: ['https://unpkg.com/vue3-pdf-app@1.0.3/dist/icons/main.css'],
js: [
'https://unpkg.com/vue@3.4.21/dist/vue.global.js',
'https://unpkg.com/pinia@2.1.7',
'https://unpkg.com/vue-router@4.3.0',
'https://unpkg.com/vant@4.9.1'
]
}
var externalGlobalsObj = {
vue: 'Vue',
pinia: 'Pinia',
'vue-router': 'VueRouter',
vant: 'Vant'
}
var vite_config_default = defineConfig(({ mode }) => {
console.log(mode)
const isProduction = mode === 'production'
return {
plugins: [
vue(),
AutoImport({
resolvers: [VantResolver()]
}),
Components({
resolvers: [VantResolver()]
}),
createHtmlPlugin({
inject: {
data: {
cdnCss: isProduction ? cdn.css : [],
cdnJs: isProduction ? cdn.js : []
}
}
}),
//在plugins配置数组里添加gzip插件
viteCompression({
verbose: true,
disable: false,
threshold: 10240,
algorithm: 'gzip',
ext: '.gz'
}),
{
...externalGlobals(externalGlobalsObj),
enforce: 'post',
apply: 'build'
}
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', __vite_injected_original_import_meta_url)),
'/img': fileURLToPath(new URL('./src/assets/img', __vite_injected_original_import_meta_url))
},
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
},
build: {
target: 'es2015',
assetsDir: dir,
minify: 'terser',
// 必须开启使用terserOptions才有效果
terserOptions: {
compress: {
keep_infinity: true,
// 防止 Infinity 被压缩成 1/0这可能会导致 Chrome 上的性能问题
drop_console: true,
// 生产环境去除 console
drop_debugger: true
// 生产环境去除 debugger
}
},
chunkSizeWarningLimit: 2e3,
// chunk 大小警告的限制(以 kbs 为单位)
rollupOptions: {
external: Object.keys(externalGlobalsObj),
output: {
chunkFileNames: `${dir}/js/chunk/[name]-[hash].js`,
entryFileNames: `${dir}/js/entry/[name]-[hash].js`,
assetFileNames: `${dir}/[ext]/[name]-[hash].[ext]`
}
}
}
/* css: {
preprocessorOptions: {
scss: {
// ElementPlus自动导入定制化样式文件进行样式覆盖 @use "@/assets/styles/element.scss" as *;
// 全局样式变量 @use "@/assets/styles/var.scss" as *;;
additionalData: `
@use "@/assets/styles/var.scss" as *;
`,
}
}
} */
}
})
export { vite_config_default as default }
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxjb2RlXFxcXHZ1ZTMtaDUtc3RvY2tcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIkU6XFxcXGNvZGVcXFxcdnVlMy1oNS1zdG9ja1xcXFx2aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vRTovY29kZS92dWUzLWg1LXN0b2NrL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgVVJMIH0gZnJvbSAnbm9kZTp1cmwnXHJcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnXHJcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xyXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJ1xyXG5pbXBvcnQgQ29tcG9uZW50cyBmcm9tICd1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlJ1xyXG5pbXBvcnQgeyBWYW50UmVzb2x2ZXIgfSBmcm9tICdAdmFudC9hdXRvLWltcG9ydC1yZXNvbHZlcidcclxuaW1wb3J0IGV4dGVybmFsR2xvYmFscyBmcm9tICdyb2xsdXAtcGx1Z2luLWV4dGVybmFsLWdsb2JhbHMnXHJcbmltcG9ydCB7IGNyZWF0ZUh0bWxQbHVnaW4gfSBmcm9tICd2aXRlLXBsdWdpbi1odG1sJ1xyXG4vLyBcdTY1ODdcdTRFRjZcdTUzOEJcdTdGMjlcclxuaW1wb3J0IHZpdGVDb21wcmVzc2lvbiBmcm9tICd2aXRlLXBsdWdpbi1jb21wcmVzc2lvbidcclxuZnVuY3Rpb24gZ2V0RGlyKCkge1xyXG4gIGNvbnN0IGQgPSBuZXcgRGF0ZSgpXHJcbiAgY29uc3QgeXkgPSBkLmdldEZ1bGxZZWFyKClcclxuICBjb25zdCBNTSA9IGQuZ2V0TW9udGgoKSArIDEgPj0gMTAgPyBkLmdldE1vbnRoKCkgKyAxICsgJycgOiAnMCcgKyAoZC5nZXRNb250aCgpICsgMSlcclxuICBjb25zdCBERCA9IGQuZ2V0RGF0ZSgpID49IDEwID8gZC5nZXREYXRlKCkgKyAnJyA6ICcwJyArIGQuZ2V0RGF0ZSgpXHJcbiAgY29uc3QgaCA9IGQuZ2V0SG91cnMoKSA+PSAxMCA/IGQuZ2V0SG91cnMoKSArICcnIDogJzAnICsgZC5nZXRIb3VycygpXHJcbiAgY29uc3QgbW0gPSBkLmdldE1pbnV0ZXMoKSA+PSAxMCA/IGQuZ2V0TWludXRlcygpICsgJycgOiAnMCcgKyBkLmdldE1pbnV0ZXMoKVxyXG4gIGNvbnN0IHZlcnNpb24gPSB5eSArIE1NICsgREQgKyBoICsgbW1cclxuICByZXR1cm4gdmVyc2lvbiArICcvc3RhdGljJ1xyXG59XHJcbmNvbnN0IGRpciA9IGdldERpcigpXHJcblxyXG5jb25zdCBjZG4gPSB7XHJcbiAgY3NzOiBbJ2h0dHBzOi8vdW5wa2cuY29tL3Z1ZTMtcGRmLWFwcEAxLjAuMy9kaXN0L2ljb25zL21haW4uY3NzJ10sXHJcbiAganM6IFtcclxuICAgICdodHRwczovL3VucGtnLmNvbS92dWVAMy40LjIxL2Rpc3QvdnVlLmdsb2JhbC5qcycsXHJcbiAgICAnaHR0cHM6Ly91bnBrZy5jb20vcGluaWFAMi4xLjcnLFxyXG4gICAgJ2h0dHBzOi8vdW5wa2cuY29tL3BpbmlhLXBsdWdpbi1wZXJzaXN0ZWRzdGF0ZUAzLjIuMScsXHJcbiAgICAnaHR0cHM6Ly91bnBrZy5jb20vdnVlLXJvdXRlckA0LjMuMCcsXHJcbiAgICAnaHR0cHM6Ly91bnBrZy5jb20vYXhpb3NAMS43LjInLFxyXG4gICAgJ2h0dHBzOi8vdW5wa2cuY29tL3ZhbnRANC45LjEnLFxyXG4gICAgJ2h0dHBzOi8vdW5wa2cuY29tL21pdHRAMy4wLjEnLFxyXG4gICAgJ2h0dHBzOi8vdW5wa2cuY29tL21vbWVudEAyLjMwLjEnLFxyXG4gICAgJ2h0dHBzOi8vdW5wa2cuY29tL2NyeXB0by1qc0A0LjIuMCcsXHJcbiAgICAnaHR0cHM6Ly91bnBrZy5jb20veGxzeEAwLjE4LjUnLFxyXG4gICAgJ2h0dHBzOi8vdW5wa2cuY29tL3Z1ZTMtcGRmLWFwcEAxLjAuMydcclxuICBdXHJcbn1cclxuXHJcbmNvbnN0IGV4dGVybmFsR2xvYmFsc09iaiA9IHtcclxuICB2dWU6ICdWdWUnLFxyXG4gIHBpbmlhOiAnUGluaWEnLFxyXG4gICdwaW5pYS1wbHVnaW4tcGVyc2lzdGVkc3RhdGUnOiAnUGluaWFQbHVnaW5QZXJzaXN0ZWRzdGF0ZScsXHJcbiAgJ3Z1ZS1yb3V0ZXInOiAnVnVlUm91dGVyJyxcclxuICBheGlvczogJ0F4aW9zJyxcclxuICB2YW50OiAnVmFudCcsXHJcbiAgbWl0dDogJ01pdHQnLFxyXG4gIG1vbWVudDogJ01vbWVudCcsXHJcbiAgJ2NyeXB0by1qcyc6ICdDcnlwdG8tSnMnLFxyXG4gIHhsc3g6ICdYbHN4JyxcclxuICAndnVlMy1wZGYtYXBwJzogJ1Z1ZTMtUGRmLUFwcCdcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKCh7IG1vZGUgfSkgPT4ge1xyXG4gIGNvbnNvbGUubG9nKG1vZGUpXHJcbiAgY29uc3QgaXNQcm9kdWN0aW9uID0gbW9kZSA9PT0gJ3Byb2R1Y3Rpb24nXHJcbiAgcmV0dXJuIHtcclxuICAgIHBsdWdpbnM6IFtcclxuICAgICAgdnVlKCksXHJcbiAgICAgIEF1dG9JbXBvcnQoe1xyXG4gICAgICAgIHJlc29sdmVyczogW1ZhbnRSZXNvbHZlcigpXVxyXG4gICAgICB9KSxcclxuICAgICAgQ29tcG9uZW50cyh7XHJcbiAgICAgICAgcmVzb2x2ZXJzOiBbVmFudFJlc29sdmVyKCldXHJcbiAgICAgIH0pLFxyXG4gICAgICBjcmVhdGVIdG1sUGx1Z2luKHtcclxuICAgICAgICBpbmplY3Q6IHtcclxuICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgY2RuQ3NzOiBpc1Byb2R1Y3Rpb24gPyBjZG4uY3NzIDogW10sXHJcbiAgICAgICAgICAgIGNkbkpzOiBpc1Byb2R1Y3Rpb24gPyBjZG4uanMgOiBbXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIC8vXHU1NzI4cGx1Z2luc1x1OTE0RFx1N0Y2RVx1NjU3MFx1N0VDNFx1OTFDQ1x1NkRGQlx1NTJBMGd6aXBcdTYzRDJcdTRFRjZcclxuICAgICAgdml0ZUNvbXByZXNzaW9uKHtcclxuICAgICAgICB2ZXJib3NlOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHRocmVzaG9sZDogMTAyNDAsXHJcbiAgICAgICAgYWxnb3JpdGhtOiAnZ3ppcCcsXHJcbiAgICAgICAgZXh0OiAnLmd6J1xyXG4gICAgICB9KSxcclxuICAgICAge1xyXG4gICAgICAgIC4uLmV4dGVybmFsR2xvYmFscyhleHRlcm5hbEdsb2JhbHNPYmopLFxyXG4gICAgICAgIGVuZm9yY2U6ICdwb3N0JyxcclxuICAgICAgICBhcHBseTogJ2J1aWxkJ1xyXG4gICAgICB9XHJcbiAgICBdLFxyXG4gICAgcmVzb2x2ZToge1xyXG4gICAgICBhbGlhczoge1xyXG4gICAgICAgICdAJzogZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuL3NyYycsIGltcG9ydC5tZXRhLnVybCkpLFxyXG4gICAgICAgICcvaW1nJzogZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuL3NyYy9hc3NldHMvaW1nJywgaW1wb3J0Lm1ldGEudXJsKSlcclxuICAgICAgfSxcclxuICAgICAgZXh0ZW5zaW9uczogWycubWpzJywgJy5qcycsICcudHMnLCAnLmpzeCcsICcudHN4JywgJy5qc29uJywgJy52dWUnXVxyXG4gICAgfSxcclxuICAgIGJ1aWxkOiB7XHJcbiAgICAgIHRhcmdldDogJ2VzMjAxNScsXHJcbiAgICAgIGFzc2V0c0RpcjogZGlyLFxyXG4gICAgICBtaW5pZnk6ICd0ZXJzZXInLCAvLyBcdTVGQzVcdTk4N0JcdTVGMDBcdTU0MkZcdUZGMUFcdTRGN0ZcdTc1Mjh0ZXJzZXJPcHRpb25zXHU2MjREXHU2NzA5XHU2NTQ4XHU2NzlDXHJcbiAgICAgIHRlcnNlck9wdGlvbnM6IHtcclxuICAgICAgICBjb21wcmVzczoge1xyXG4gICAgICAgICAga2VlcF9pbmZpbml0eTogdHJ1ZSwgLy8gXHU5NjMyXHU2QjYyIEluZmluaXR5IFx1ODhBQlx1NTM4Qlx1N0YyOVx1NjIxMCAxLzBcdUZGMENcdThGRDlcdTUzRUZcdTgwRkRcdTRGMUFcdTVCRkNcdTgxRjQgQ2hyb21lIFx1NEUwQVx1NzY4NFx1NjAyN1x1ODBGRFx1OTVFRVx1OTg5OFxyXG4gICAgICAgICAgZHJvcF9jb25zb2xlOiB0cnVlLCAvLyBcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcdTUzQkJcdTk2NjQgY29uc29sZVxyXG4gICAgICAgICAgZHJvcF9kZWJ1Z2dlcjogdHJ1ZSAvLyBcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcdTUzQkJcdTk2NjQgZGVidWdnZXJcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGNodW5rU2l6ZVdhcm5pbmdMaW1pdDogMjAwMCwgLy8gY2h1bmsgXHU1OTI3XHU1QzBGXHU4QjY2XHU1NDRBXHU3Njg0XHU5NjUwXHU1MjM2XHVGRjA4XHU0RUU1IGticyBcdTRFM0FcdTUzNTVcdTRGNERcdUZGMDlcclxuICAgICAgcm9sbHVwT3B0aW9uczoge1xyXG4gICAgICAgIGV4dGVybmFsOiBPYmplY3Qua2V5cyhleHRlcm5hbEdsb2JhbHNPYmopLFxyXG4gICAgICAgIG91dHB1dDoge1xyXG4gICAgICAgICAgY2h1bmtGaWxlTmFtZXM6IGAke2Rpcn0vanMvY2h1bmsvW25hbWVdLVtoYXNoXS5qc2AsXHJcbiAgICAgICAgICBlbnRyeUZpbGVOYW1lczogYCR7ZGlyfS9qcy9lbnRyeS9bbmFtZV0tW2hhc2hdLmpzYCxcclxuICAgICAgICAgIGFzc2V0RmlsZU5hbWVzOiBgJHtkaXJ9L1tleHRdL1tuYW1lXS1baGFzaF0uW2V4dF1gXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvKiBjc3M6IHtcclxuICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcclxuICAgICAgc2Nzczoge1xyXG4gICAgICAgIC8vIEVsZW1lbnRQbHVzXHU4MUVBXHU1MkE4XHU1QkZDXHU1MTY1XHU1QjlBXHU1MjM2XHU1MzE2XHU2ODM3XHU1RjBGXHU2NTg3XHU0RUY2XHU4RkRCXHU4ODRDXHU2ODM3XHU1RjBGXHU4OTg2XHU3NkQ2ICBAdXNlIFwiQC9hc3NldHMvc3R5bGVzL2VsZW1lbnQuc2Nzc1wiIGFzICo7XHJcbiAgICAgICAgLy8gXHU1MTY4XHU1QzQwXHU2ODM3XHU1RjBGXHU1M0Q4XHU5MUNGICBAdXNlIFwiQC9hc3NldHMvc3R5bGVzL3Zhci5zY3NzXCIgYXMgKjs7XHJcbiAgICAgICAgYWRkaXRpb25hbERhdGE6IGBcclxuICAgICAgICAgIEB1c2UgXCJAL2Fzc2V0cy9zdHlsZXMvdmFyLnNjc3NcIiBhcyAqO1xyXG4gICAgICAgIGAsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9ICovXHJcbiAgfVxyXG59KVxyXG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQXVQLFNBQVMsZUFBZSxXQUFXO0FBQzFSLFNBQVMsb0JBQW9CO0FBQzdCLE9BQU8sU0FBUztBQUNoQixPQUFPLGdCQUFnQjtBQUN2QixPQUFPLGdCQUFnQjtBQUN2QixTQUFTLG9CQUFvQjtBQUM3QixPQUFPLHFCQUFxQjtBQUM1QixTQUFTLHdCQUF3QjtBQUVqQyxPQUFPLHFCQUFxQjtBQVQySCxJQUFNLDJDQUEyQztBQVV4TSxTQUFTLFNBQVM7QUFDaEIsUUFBTSxJQUFJLG9CQUFJLEtBQUs7QUFDbkIsUUFBTSxLQUFLLEVBQUUsWUFBWTtBQUN6QixRQUFNLEtBQUssRUFBRSxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsU0FBUyxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsU0FBUyxJQUFJO0FBQ2xGLFFBQU0sS0FBSyxFQUFF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