|
|
|
|
|
// vite.config.ts
|
|
|
|
|
|
import path4 from "node:path";
|
|
|
|
|
|
import process4 from "node:process";
|
|
|
|
|
|
import Uni from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-helper+plugin-uni@0.1._a5da5ce589b3baa190af3f29755e9dba/node_modules/@uni-helper/plugin-uni/src/index.js";
|
|
|
|
|
|
import Components from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-helper+vite-plugin-uni-components@0.2.3_rollup@4.50.0/node_modules/@uni-helper/vite-plugin-uni-components/dist/index.mjs";
|
|
|
|
|
|
import UniLayouts from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-helper+vite-plugin-uni-layouts@0.1.11_rollup@4.50.0/node_modules/@uni-helper/vite-plugin-uni-layouts/dist/index.mjs";
|
|
|
|
|
|
import UniManifest from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-helper+vite-plugin-uni_fafb499a6c7148eb9f0b6edf3e80e6e8/node_modules/@uni-helper/vite-plugin-uni-manifest/dist/index.mjs";
|
|
|
|
|
|
import UniPages from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-helper+vite-plugin-uni_e52ea90dc678554206499b68a7e7c4f5/node_modules/@uni-helper/vite-plugin-uni-pages/dist/index.mjs";
|
|
|
|
|
|
import UniPlatform from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-helper+vite-plugin-uni-platform@0.0.5/node_modules/@uni-helper/vite-plugin-uni-platform/dist/index.mjs";
|
|
|
|
|
|
import Optimization from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-ku+bundle-optimizer@1._53b0973a91f876a19b3a499e43ca5442/node_modules/@uni-ku/bundle-optimizer/dist/index.mjs";
|
|
|
|
|
|
import UniKuRoot from "file:///D:/projects/pest_uni/node_modules/.pnpm/@uni-ku+root@1.4.1_vite@5.2_c0ded3f42c86f74e44565dc29de27a4c/node_modules/@uni-ku/root/dist/index.mjs";
|
|
|
|
|
|
import dayjs from "file:///D:/projects/pest_uni/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/dayjs.min.js";
|
|
|
|
|
|
import { visualizer } from "file:///D:/projects/pest_uni/node_modules/.pnpm/rollup-plugin-visualizer@6.0.3_rollup@4.50.0/node_modules/rollup-plugin-visualizer/dist/plugin/index.js";
|
|
|
|
|
|
import UnoCSS from "file:///D:/projects/pest_uni/node_modules/.pnpm/unocss@66.0.0_postcss@8.5.6_2ea57284233e93f4ec422395ed46624f/node_modules/unocss/dist/vite.mjs";
|
|
|
|
|
|
import AutoImport from "file:///D:/projects/pest_uni/node_modules/.pnpm/unplugin-auto-import@20.1.0/node_modules/unplugin-auto-import/dist/vite.js";
|
|
|
|
|
|
import { defineConfig, loadEnv } from "file:///D:/projects/pest_uni/node_modules/.pnpm/vite@5.2.8_@types+node@20.19.11_sass@1.77.8_terser@5.43.1/node_modules/vite/dist/node/index.js";
|
|
|
|
|
|
import ViteRestart from "file:///D:/projects/pest_uni/node_modules/.pnpm/vite-plugin-restart@1.0.0_v_0b7ac2f9a82bf6364aa0d69f22d0869d/node_modules/vite-plugin-restart/dist/index.js";
|
|
|
|
|
|
|
|
|
|
|
|
// scripts/open-dev-tools.js
|
|
|
|
|
|
import { exec } from "node:child_process";
|
|
|
|
|
|
import fs from "node:fs";
|
|
|
|
|
|
import path from "node:path";
|
|
|
|
|
|
import process from "node:process";
|
|
|
|
|
|
function _openDevTools() {
|
|
|
|
|
|
const platform = process.platform;
|
|
|
|
|
|
const { UNI_PLATFORM } = process.env;
|
|
|
|
|
|
const uniPlatformText = UNI_PLATFORM === "mp-weixin" ? "\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F" : UNI_PLATFORM === "mp-alipay" ? "\u652F\u4ED8\u5B9D\u5C0F\u7A0B\u5E8F" : "\u5C0F\u7A0B\u5E8F";
|
|
|
|
|
|
const projectPath = path.resolve(process.cwd(), `dist/dev/${UNI_PLATFORM}`);
|
|
|
|
|
|
if (!fs.existsSync(projectPath)) {
|
|
|
|
|
|
console.log(`\u274C ${uniPlatformText}\u6784\u5EFA\u76EE\u5F55\u4E0D\u5B58\u5728:`, projectPath);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
console.log(`\u{1F680} \u6B63\u5728\u6253\u5F00${uniPlatformText}\u5F00\u53D1\u8005\u5DE5\u5177...`);
|
|
|
|
|
|
let command = "";
|
|
|
|
|
|
if (platform === "darwin") {
|
|
|
|
|
|
if (UNI_PLATFORM === "mp-weixin") {
|
|
|
|
|
|
command = `/Applications/wechatwebdevtools.app/Contents/MacOS/cli -o "${projectPath}"`;
|
|
|
|
|
|
} else if (UNI_PLATFORM === "mp-alipay") {
|
|
|
|
|
|
command = `/Applications/\u5C0F\u7A0B\u5E8F\u5F00\u53D1\u8005\u5DE5\u5177.app/Contents/MacOS/\u5C0F\u7A0B\u5E8F\u5F00\u53D1\u8005\u5DE5\u5177 --p "${projectPath}"`;
|
|
|
|
|
|
}
|
|
|
|
|
|
} else if (platform === "win32" || platform === "win64") {
|
|
|
|
|
|
if (UNI_PLATFORM === "mp-weixin") {
|
|
|
|
|
|
command = `"C:\\Program Files (x86)\\Tencent\\\u5FAE\u4FE1web\u5F00\u53D1\u8005\u5DE5\u5177\\cli.bat" -o "${projectPath}"`;
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
console.log("\u274C \u5F53\u524D\u7CFB\u7EDF\u4E0D\u652F\u6301\u81EA\u52A8\u6253\u5F00\u5FAE\u4FE1\u5F00\u53D1\u8005\u5DE5\u5177");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
exec(command, (error, stdout, stderr) => {
|
|
|
|
|
|
if (error) {
|
|
|
|
|
|
console.log(`\u274C \u6253\u5F00${uniPlatformText}\u5F00\u53D1\u8005\u5DE5\u5177\u5931\u8D25:`, error.message);
|
|
|
|
|
|
console.log(`\u{1F4A1} \u8BF7\u786E\u4FDD${uniPlatformText}\u5F00\u53D1\u8005\u5DE5\u5177\u670D\u52A1\u7AEF\u53E3\u5DF2\u542F\u7528`);
|
|
|
|
|
|
console.log(`\u{1F4A1} \u53EF\u4EE5\u624B\u52A8\u6253\u5F00${uniPlatformText}\u5F00\u53D1\u8005\u5DE5\u5177\u5E76\u5BFC\u5165\u9879\u76EE:`, projectPath);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (stderr) {
|
|
|
|
|
|
console.log("\u26A0\uFE0F \u8B66\u544A:", stderr);
|
|
|
|
|
|
}
|
|
|
|
|
|
console.log(`\u2705 ${uniPlatformText}\u5F00\u53D1\u8005\u5DE5\u5177\u5DF2\u6253\u5F00`);
|
|
|
|
|
|
if (stdout) {
|
|
|
|
|
|
console.log(stdout);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
function openDevTools() {
|
|
|
|
|
|
let isFirstBuild = true;
|
|
|
|
|
|
return {
|
|
|
|
|
|
name: "uni-devtools",
|
|
|
|
|
|
writeBundle() {
|
|
|
|
|
|
if (isFirstBuild && process.env.UNI_PLATFORM?.includes("mp")) {
|
|
|
|
|
|
isFirstBuild = false;
|
|
|
|
|
|
_openDevTools();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// vite-plugins/copy-native-resources.ts
|
|
|
|
|
|
import path2 from "node:path";
|
|
|
|
|
|
import process2 from "node:process";
|
|
|
|
|
|
import fs2 from "file:///D:/projects/pest_uni/node_modules/.pnpm/fs-extra@10.1.0/node_modules/fs-extra/lib/index.js";
|
|
|
|
|
|
var DEFAULT_OPTIONS = {
|
|
|
|
|
|
enable: true,
|
|
|
|
|
|
sourceDir: "nativeplugins",
|
|
|
|
|
|
targetDirName: "nativeplugins",
|
|
|
|
|
|
verbose: true,
|
|
|
|
|
|
logPrefix: "[copy-native-resources]"
|
|
|
|
|
|
};
|
|
|
|
|
|
function copyNativeResources(options = {}) {
|
|
|
|
|
|
const config = { ...DEFAULT_OPTIONS, ...options };
|
|
|
|
|
|
if (!config.enable) {
|
|
|
|
|
|
return {
|
|
|
|
|
|
name: "copy-native-resources-disabled",
|
|
|
|
|
|
apply: "build",
|
|
|
|
|
|
writeBundle() {
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
|
|
|
name: "copy-native-resources",
|
|
|
|
|
|
apply: "build",
|
|
|
|
|
|
// 只在构建时应用
|
|
|
|
|
|
enforce: "post",
|
|
|
|
|
|
// 在其他插件执行完毕后执行
|
|
|
|
|
|
async writeBundle() {
|
|
|
|
|
|
const { sourceDir, targetDirName, verbose, logPrefix } = config;
|
|
|
|
|
|
try {
|
|
|
|
|
|
const projectRoot = process2.cwd();
|
|
|
|
|
|
const sourcePath = path2.resolve(projectRoot, sourceDir);
|
|
|
|
|
|
const buildMode = process2.env.NODE_ENV === "production" ? "build" : "dev";
|
|
|
|
|
|
const platform = process2.env.UNI_PLATFORM || "app";
|
|
|
|
|
|
const targetPath = path2.resolve(
|
|
|
|
|
|
projectRoot,
|
|
|
|
|
|
"dist",
|
|
|
|
|
|
buildMode,
|
|
|
|
|
|
platform,
|
|
|
|
|
|
targetDirName
|
|
|
|
|
|
);
|
|
|
|
|
|
const sourceExists = await fs2.pathExists(sourcePath);
|
|
|
|
|
|
if (!sourceExists) {
|
|
|
|
|
|
if (verbose) {
|
|
|
|
|
|
console.warn(`${logPrefix} \u6E90\u76EE\u5F55\u4E0D\u5B58\u5728\uFF0C\u8DF3\u8FC7\u590D\u5236\u64CD\u4F5C`);
|
|
|
|
|
|
console.warn(`${logPrefix} \u6E90\u76EE\u5F55\u8DEF\u5F84: ${sourcePath}`);
|
|
|
|
|
|
console.warn(`${logPrefix} \u5982\u9700\u4F7F\u7528\u672C\u5730\u539F\u751F\u63D2\u4EF6\uFF0C\u8BF7\u5728\u9879\u76EE\u6839\u76EE\u5F55\u521B\u5EFA nativeplugins \u76EE\u5F55`);
|
|
|
|
|
|
console.warn(`${logPrefix} \u5E76\u6309\u7167\u5B98\u65B9\u6587\u6863\u653E\u5165\u539F\u751F\u63D2\u4EF6\u6587\u4EF6`);
|
|
|
|
|
|
console.warn(`${logPrefix} \u53C2\u8003: https://uniapp.dcloud.net.cn/plugin/native-plugin.html`);
|
|
|
|
|
|
}
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
const sourceFiles = await fs2.readdir(sourcePath);
|
|
|
|
|
|
if (sourceFiles.length === 0) {
|
|
|
|
|
|
if (verbose) {
|
|
|
|
|
|
console.warn(`${logPrefix} \u6E90\u76EE\u5F55\u4E3A\u7A7A\uFF0C\u8DF3\u8FC7\u590D\u5236\u64CD\u4F5C`);
|
|
|
|
|
|
console.warn(`${logPrefix} \u6E90\u76EE\u5F55\u8DEF\u5F84: ${sourcePath}`);
|
|
|
|
|
|
console.warn(`${logPrefix} \u8BF7\u5728 nativeplugins \u76EE\u5F55\u4E2D\u653E\u5165\u539F\u751F\u63D2\u4EF6\u6587\u4EF6`);
|
|
|
|
|
|
}
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
await fs2.ensureDir(targetPath);
|
|
|
|
|
|
if (verbose) {
|
|
|
|
|
|
console.log(`${logPrefix} \u5F00\u59CB\u590D\u5236 UniApp \u672C\u5730\u539F\u751F\u63D2\u4EF6...`);
|
|
|
|
|
|
console.log(`${logPrefix} \u6E90\u76EE\u5F55: ${sourcePath}`);
|
|
|
|
|
|
console.log(`${logPrefix} \u76EE\u6807\u76EE\u5F55: ${targetPath}`);
|
|
|
|
|
|
console.log(`${logPrefix} \u6784\u5EFA\u6A21\u5F0F: ${buildMode}`);
|
|
|
|
|
|
console.log(`${logPrefix} \u76EE\u6807\u5E73\u53F0: ${platform}`);
|
|
|
|
|
|
console.log(`${logPrefix} \u53D1\u73B0 ${sourceFiles.length} \u4E2A\u539F\u751F\u63D2\u4EF6\u6587\u4EF6/\u76EE\u5F55`);
|
|
|
|
|
|
}
|
|
|
|
|
|
await fs2.copy(sourcePath, targetPath, {
|
|
|
|
|
|
overwrite: true,
|
|
|
|
|
|
// 覆盖已存在的文件,确保使用最新版本
|
|
|
|
|
|
errorOnExist: false,
|
|
|
|
|
|
// 如果目标文件存在不报错
|
|
|
|
|
|
preserveTimestamps: true
|
|
|
|
|
|
// 保持文件的时间戳
|
|
|
|
|
|
});
|
|
|
|
|
|
if (verbose) {
|
|
|
|
|
|
console.log(`${logPrefix} \u2705 UniApp \u672C\u5730\u539F\u751F\u63D2\u4EF6\u590D\u5236\u5B8C\u6210`);
|
|
|
|
|
|
console.log(`${logPrefix} \u5DF2\u6210\u529F\u590D\u5236 ${sourceFiles.length} \u4E2A\u6587\u4EF6/\u76EE\u5F55\u5230\u6784\u5EFA\u76EE\u5F55`);
|
|
|
|
|
|
console.log(`${logPrefix} \u539F\u751F\u63D2\u4EF6\u73B0\u5728\u53EF\u4EE5\u5728 App \u4E2D\u6B63\u5E38\u4F7F\u7528`);
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
console.error(`${config.logPrefix} \u274C \u590D\u5236 UniApp \u672C\u5730\u539F\u751F\u63D2\u4EF6\u5931\u8D25:`, error);
|
|
|
|
|
|
console.error(`${config.logPrefix} \u9519\u8BEF\u8BE6\u60C5:`, error instanceof Error ? error.message : String(error));
|
|
|
|
|
|
console.error(`${config.logPrefix} \u8BF7\u68C0\u67E5\u6E90\u76EE\u5F55\u6743\u9650\u548C\u78C1\u76D8\u7A7A\u95F4`);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
function createCopyNativeResourcesPlugin(enable = true, options = {}) {
|
|
|
|
|
|
return copyNativeResources({ enable, ...options });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// vite-plugins/sync-manifest-plugins.ts
|
|
|
|
|
|
import fs3 from "node:fs";
|
|
|
|
|
|
import path3 from "node:path";
|
|
|
|
|
|
import process3 from "node:process";
|
|
|
|
|
|
function syncManifestPlugin() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
name: "sync-manifest",
|
|
|
|
|
|
apply: "build",
|
|
|
|
|
|
enforce: "post",
|
|
|
|
|
|
writeBundle: {
|
|
|
|
|
|
order: "post",
|
|
|
|
|
|
handler() {
|
|
|
|
|
|
const srcManifestPath = path3.resolve(process3.cwd(), "./src/manifest.json");
|
|
|
|
|
|
const distAppPath = path3.resolve(process3.cwd(), "./dist/dev/app/manifest.json");
|
|
|
|
|
|
try {
|
|
|
|
|
|
const srcManifest = JSON.parse(fs3.readFileSync(srcManifestPath, "utf8"));
|
|
|
|
|
|
const distAppDir = path3.dirname(distAppPath);
|
|
|
|
|
|
if (!fs3.existsSync(distAppDir)) {
|
|
|
|
|
|
fs3.mkdirSync(distAppDir, { recursive: true });
|
|
|
|
|
|
}
|
|
|
|
|
|
let distManifest = {};
|
|
|
|
|
|
if (fs3.existsSync(distAppPath)) {
|
|
|
|
|
|
distManifest = JSON.parse(fs3.readFileSync(distAppPath, "utf8"));
|
|
|
|
|
|
}
|
|
|
|
|
|
if (srcManifest["app-plus"]?.distribute?.plugins) {
|
|
|
|
|
|
if (!distManifest.plus)
|
|
|
|
|
|
distManifest.plus = {};
|
|
|
|
|
|
if (!distManifest.plus.distribute)
|
|
|
|
|
|
distManifest.plus.distribute = {};
|
|
|
|
|
|
distManifest.plus.distribute.plugins = srcManifest["app-plus"].distribute.plugins;
|
|
|
|
|
|
fs3.writeFileSync(distAppPath, JSON.stringify(distManifest, null, 2));
|
|
|
|
|
|
console.log("\u2705 Manifest plugins \u540C\u6B65\u6210\u529F");
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
console.error("\u274C \u540C\u6B65 manifest plugins \u5931\u8D25:", error);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// vite.config.ts
|
|
|
|
|
|
var vite_config_default = defineConfig(({ command, mode }) => {
|
|
|
|
|
|
console.log("command, mode -> ", command, mode);
|
|
|
|
|
|
const { UNI_PLATFORM } = process4.env;
|
|
|
|
|
|
console.log("UNI_PLATFORM -> ", UNI_PLATFORM);
|
|
|
|
|
|
const env = loadEnv(mode, path4.resolve(process4.cwd(), "env"));
|
|
|
|
|
|
const {
|
|
|
|
|
|
VITE_APP_PORT,
|
|
|
|
|
|
VITE_SERVER_BASEURL,
|
|
|
|
|
|
VITE_APP_TITLE,
|
|
|
|
|
|
VITE_DELETE_CONSOLE,
|
|
|
|
|
|
VITE_APP_PUBLIC_BASE,
|
|
|
|
|
|
VITE_APP_PROXY_ENABLE,
|
|
|
|
|
|
VITE_APP_PROXY_PREFIX,
|
|
|
|
|
|
VITE_COPY_NATIVE_RES_ENABLE
|
|
|
|
|
|
} = env;
|
|
|
|
|
|
console.log("\u73AF\u5883\u53D8\u91CF env -> ", env);
|
|
|
|
|
|
return defineConfig({
|
|
|
|
|
|
envDir: "./env",
|
|
|
|
|
|
// 自定义env目录
|
|
|
|
|
|
base: VITE_APP_PUBLIC_BASE,
|
|
|
|
|
|
plugins: [
|
|
|
|
|
|
UniPages({
|
|
|
|
|
|
exclude: ["**/components/**/**.*"],
|
|
|
|
|
|
// pages 目录为 src/pages,分包目录不能配置在pages目录下!!
|
|
|
|
|
|
// 是个数组,可以配置多个,但是不能为pages里面的目录!!
|
|
|
|
|
|
subPackages: [
|
|
|
|
|
|
"src/pages-fg",
|
|
|
|
|
|
// 这个是相对必要的路由,尽量留着(登录页、注册页、404页等)
|
|
|
|
|
|
"src/pages-sub"
|
|
|
|
|
|
// 这个多为示例代码,参考用的,开发完后注释掉即可(或者直接删除)
|
|
|
|
|
|
],
|
|
|
|
|
|
dts: "src/types/uni-pages.d.ts"
|
|
|
|
|
|
}),
|
|
|
|
|
|
UniLayouts(),
|
|
|
|
|
|
UniPlatform(),
|
|
|
|
|
|
UniManifest(),
|
|
|
|
|
|
// Optimization 插件需要 page.json 文件,故应在 UniPages 插件之后执行
|
|
|
|
|
|
Optimization({
|
|
|
|
|
|
enable: {
|
|
|
|
|
|
"optimization": true,
|
|
|
|
|
|
"async-import": true,
|
|
|
|
|
|
"async-component": true
|
|
|
|
|
|
},
|
|
|
|
|
|
dts: {
|
|
|
|
|
|
base: "src/types"
|
|
|
|
|
|
},
|
|
|
|
|
|
logger: false
|
|
|
|
|
|
}),
|
|
|
|
|
|
// UniXXX 需要在 Uni 之前引入
|
|
|
|
|
|
{
|
|
|
|
|
|
// 临时解决 dcloudio 官方的 @dcloudio/uni-mp-compiler 出现的编译 BUG
|
|
|
|
|
|
// 参考 github issue: https://github.com/dcloudio/uni-app/issues/4952
|
|
|
|
|
|
// 自定义插件禁用 vite:vue 插件的 devToolsEnabled,强制编译 vue 模板时 inline 为 true
|
|
|
|
|
|
name: "fix-vite-plugin-vue",
|
|
|
|
|
|
configResolved(config) {
|
|
|
|
|
|
const plugin = config.plugins.find((p) => p.name === "vite:vue");
|
|
|
|
|
|
if (plugin && plugin.api && plugin.api.options) {
|
|
|
|
|
|
plugin.api.options.devToolsEnabled = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
UnoCSS(),
|
|
|
|
|
|
AutoImport({
|
|
|
|
|
|
imports: ["vue", "uni-app"],
|
|
|
|
|
|
dts: "src/types/auto-import.d.ts",
|
|
|
|
|
|
dirs: ["src/hooks"],
|
|
|
|
|
|
// 自动导入 hooks
|
|
|
|
|
|
vueTemplate: true
|
|
|
|
|
|
// default false
|
|
|
|
|
|
}),
|
|
|
|
|
|
ViteRestart({
|
|
|
|
|
|
// 通过这个插件,在修改vite.config.js文件则不需要重新运行也生效配置
|
|
|
|
|
|
restart: ["vite.config.js"]
|
|
|
|
|
|
}),
|
|
|
|
|
|
// h5环境增加 BUILD_TIME 和 BUILD_BRANCH
|
|
|
|
|
|
UNI_PLATFORM === "h5" && {
|
|
|
|
|
|
name: "html-transform",
|
|
|
|
|
|
transformIndexHtml(html) {
|
|
|
|
|
|
return html.replace("%BUILD_TIME%", dayjs().format("YYYY-MM-DD HH:mm:ss")).replace("%VITE_APP_TITLE%", VITE_APP_TITLE);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
// 打包分析插件,h5 + 生产环境才弹出
|
|
|
|
|
|
UNI_PLATFORM === "h5" && mode === "production" && visualizer({
|
|
|
|
|
|
filename: "./node_modules/.cache/visualizer/stats.html",
|
|
|
|
|
|
open: true,
|
|
|
|
|
|
gzipSize: true,
|
|
|
|
|
|
brotliSize: true
|
|
|
|
|
|
}),
|
|
|
|
|
|
// 原生插件资源复制插件 - 仅在 app 平台且启用时生效
|
|
|
|
|
|
createCopyNativeResourcesPlugin(
|
|
|
|
|
|
UNI_PLATFORM === "app" && VITE_COPY_NATIVE_RES_ENABLE === "true",
|
|
|
|
|
|
{
|
|
|
|
|
|
verbose: mode === "development"
|
|
|
|
|
|
// 开发模式显示详细日志
|
|
|
|
|
|
}
|
|
|
|
|
|
),
|
|
|
|
|
|
syncManifestPlugin(),
|
|
|
|
|
|
Components({
|
|
|
|
|
|
extensions: ["vue"],
|
|
|
|
|
|
deep: true,
|
|
|
|
|
|
// 是否递归扫描子目录,
|
|
|
|
|
|
directoryAsNamespace: false,
|
|
|
|
|
|
// 是否把目录名作为命名空间前缀,true 时组件名为 目录名+组件名,
|
|
|
|
|
|
dts: "src/types/components.d.ts"
|
|
|
|
|
|
// 自动生成的组件类型声明文件路径(用于 TypeScript 支持)
|
|
|
|
|
|
}),
|
|
|
|
|
|
// 若存在改变 pages.json 的插件,请将 UniKuRoot 放置其后
|
|
|
|
|
|
UniKuRoot(),
|
|
|
|
|
|
Uni(),
|
|
|
|
|
|
// 自动打开开发者工具插件 (必须修改 .env 文件中的 VITE_WX_APPID)
|
|
|
|
|
|
openDevTools()
|
|
|
|
|
|
],
|
|
|
|
|
|
define: {
|
|
|
|
|
|
__VITE_APP_PROXY__: JSON.stringify(VITE_APP_PROXY_ENABLE)
|
|
|
|
|
|
},
|
|
|
|
|
|
css: {
|
|
|
|
|
|
postcss: {
|
|
|
|
|
|
plugins: [
|
|
|
|
|
|
// autoprefixer({
|
|
|
|
|
|
// // 指定目标浏览器
|
|
|
|
|
|
// overrideBrowserslist: ['> 1%', 'last 2 versions'],
|
|
|
|
|
|
// }),
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
preprocessorOptions: {
|
|
|
|
|
|
scss: {
|
|
|
|
|
|
silenceDeprecations: ["legacy-js-api"],
|
|
|
|
|
|
additionalData: `@import "./node_modules/wot-design-uni/components/common/abstracts/variable.scss";`
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
resolve: {
|
|
|
|
|
|
alias: {
|
|
|
|
|
|
"@": path4.join(process4.cwd(), "./src"),
|
|
|
|
|
|
"@img": path4.join(process4.cwd(), "./src/static/images")
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
server: {
|
|
|
|
|
|
host: "0.0.0.0",
|
|
|
|
|
|
hmr: true,
|
|
|
|
|
|
port: Number.parseInt(VITE_APP_PORT, 10),
|
|
|
|
|
|
// 仅 H5 端生效,其他端不生效(其他端走build,不走devServer)
|
|
|
|
|
|
proxy: JSON.parse(VITE_APP_PROXY_ENABLE) ? {
|
|
|
|
|
|
[VITE_APP_PROXY_PREFIX]: {
|
|
|
|
|
|
target: VITE_SERVER_BASEURL,
|
|
|
|
|
|
changeOrigin: true,
|
|
|
|
|
|
// 后端有/api前缀则不做处理,没有则需要去掉
|
|
|
|
|
|
rewrite: (path5) => path5.replace(new RegExp(`^${VITE_APP_PROXY_PREFIX}`), "")
|
|
|
|
|
|
}
|
|
|
|
|
|
} : void 0
|
|
|
|
|
|
},
|
|
|
|
|
|
esbuild: {
|
|
|
|
|
|
drop: VITE_DELETE_CONSOLE === "true" ? ["console", "debugger"] : ["debugger"]
|
|
|
|
|
|
},
|
|
|
|
|
|
build: {
|
|
|
|
|
|
sourcemap: false,
|
|
|
|
|
|
// 方便非h5端调试
|
|
|
|
|
|
// sourcemap: VITE_SHOW_SOURCEMAP === 'true', // 默认是false
|
|
|
|
|
|
target: "es6",
|
|
|
|
|
|
// 开发环境不用压缩
|
|
|
|
|
|
minify: mode === "development" ? false : "esbuild"
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
export {
|
|
|
|
|
|
vite_config_default as default
|
|
|
|
|
|
};
|
|
|
|
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAic2NyaXB0cy9vcGVuLWRldi10b29scy5qcyIsICJ2aXRlLXBsdWdpbnMvY29weS1uYXRpdmUtcmVzb3VyY2VzLnRzIiwgInZpdGUtcGx1Z2lucy9zeW5jLW1hbmlmZXN0LXBsdWdpbnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJEOlxcXFxwcm9qZWN0c1xcXFxwZXN0X3VuaVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRDpcXFxccHJvamVjdHNcXFxccGVzdF91bmlcXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0Q6L3Byb2plY3RzL3Blc3RfdW5pL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xyXG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnXHJcbmltcG9ydCBVbmkgZnJvbSAnQHVuaS1oZWxwZXIvcGx1Z2luLXVuaSdcclxuaW1wb3J0IENvbXBvbmVudHMgZnJvbSAnQHVuaS1oZWxwZXIvdml0ZS1wbHVnaW4tdW5pLWNvbXBvbmVudHMnXHJcbi8vIEBzZWUgaHR0cHM6Ly91bmktaGVscGVyLmpzLm9yZy92aXRlLXBsdWdpbi11bmktbGF5b3V0c1xyXG5pbXBvcnQgVW5pTGF5b3V0cyBmcm9tICdAdW5pLWhlbHBlci92aXRlLXBsdWdpbi11bmktbGF5b3V0cydcclxuLy8gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vdW5pLWhlbHBlci92aXRlLXBsdWdpbi11bmktbWFuaWZlc3RcclxuaW1wb3J0IFVuaU1hbmlmZXN0IGZyb20gJ0B1bmktaGVscGVyL3ZpdGUtcGx1Z2luLXVuaS1tYW5pZmVzdCdcclxuLy8gQHNlZSBodHRwczovL3VuaS1oZWxwZXIuanMub3JnL3ZpdGUtcGx1Z2luLXVuaS1wYWdlc1xyXG5pbXBvcnQgVW5pUGFnZXMgZnJvbSAnQHVuaS1oZWxwZXIvdml0ZS1wbHVnaW4tdW5pLXBhZ2VzJ1xyXG4vLyBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS91bmktaGVscGVyL3ZpdGUtcGx1Z2luLXVuaS1wbGF0Zm9ybVxyXG4vLyBcdTk3MDBcdTg5ODFcdTRFMEUgQHVuaS1oZWxwZXIvdml0ZS1wbHVnaW4tdW5pLXBhZ2VzIFx1NjNEMlx1NEVGNlx1NEUwMFx1OEQ3N1x1NEY3Rlx1NzUyOFxyXG5pbXBvcnQgVW5pUGxhdGZvcm0gZnJvbSAnQHVuaS1oZWxwZXIvdml0ZS1wbHVnaW4tdW5pLXBsYXRmb3JtJ1xyXG4vKipcclxuICogXHU1MjA2XHU1MzA1XHU0RjE4XHU1MzE2XHUzMDAxXHU2QTIxXHU1NzU3XHU1RjAyXHU2QjY1XHU4REU4XHU1MzA1XHU4QzAzXHU3NTI4XHUzMDAxXHU3RUM0XHU0RUY2XHU1RjAyXHU2QjY1XHU4REU4XHU1MzA1XHU1RjE1XHU3NTI4XHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3VuaS1rdS9idW5kbGUtb3B0aW1pemVyXHJcbiAqL1xyXG5pbXBvcnQgT3B0aW1pemF0aW9uIGZyb20gJ0B1bmkta3UvYnVuZGxlLW9wdGltaXplcidcclxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3VuaS1rdS9yb290XHJcbmltcG9ydCBVbmlLdVJvb3QgZnJvbSAnQHVuaS1rdS9yb290J1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnXHJcbmltcG9ydCB7IHZpc3VhbGl6ZXIgfSBmcm9tICdyb2xsdXAtcGx1Z2luLXZpc3VhbGl6ZXInXHJcbmltcG9ydCBVbm9DU1MgZnJvbSAndW5vY3NzL3ZpdGUnXHJcbmltcG9ydCBBdXRvSW1wb3J0IGZyb20gJ3VucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGUnXHJcbmltcG9ydCB7IGRlZmluZUNvbmZpZywgbG9hZEVudiB9IGZyb20gJ3ZpdGUnXHJcbmltcG9ydCBWaXRlUmVzdGFydCBmcm9tICd2aXRlLXBsdWdpbi1yZXN0YXJ0J1xyXG5pbXBvcnQgb3BlbkRldlRvb2xzIGZyb20gJy4vc2NyaXB0cy9vcGVuLWRldi10b29scydcclxuaW1wb3J0IHsgY3JlYXRlQ29weU5hdGl2ZVJlc291cmNlc1BsdWdpbiB9IGZyb20gJy4vdml0ZS1wbHVnaW5zL2NvcHktbmF0aXZlLXJlc291cmNlcydcclxuaW1wb3J0IHN5bmNNYW5pZmVzdFBsdWdpbiBmcm9tICcuL3ZpdGUtcGx1Z2lucy9zeW5jLW1hbmlmZXN0LXBsdWdpbnMnXHJcblxyXG4vLyBodHRwczovL3ZpdGVqcy5kZXYvY29uZmlnL1xyXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoKHsgY29tbWFuZCwgbW9kZSB9KSA9PiB7XHJcbiAgLy8gQHNlZSBodHRwczovL3Vub2Nzcy5kZXYvXHJcbiAgLy8gY29uc3QgVW5vQ1NTID0gKGF3YWl0IGltcG9ydCgndW5vY3NzL3ZpdGUnKSkuZGVmYXVsdFxyXG4gIC8vIGNvbnNvbGUubG9nKG1vZGUgPT09IHByb2Nlc3MuZW52Lk5PREVfRU5WKSAvLyB0cnVlXHJcblxyXG4gIC8vIG1vZGU6IFx1NTMzQVx1NTIwNlx1NzUxRlx1NEVBN1x1NzNBRlx1NTg4M1x1OEZEOFx1NjYyRlx1NUYwMFx1NTNEMVx1NzNBRlx1NTg4M1xyXG4gIGNvbnNvbGUubG9nKCdjb21tYW5kLCBtb2RlIC0+ICcsIGNvbW1hbmQsIG1vZGUpXHJcbiAgLy8gcG5wbSBkZXY6aDUgXHU2NUY2XHU1Rjk3XHU1MjMwID0+IHNlcnZlIGRldmVsb3BtZW50XHJcbiAgLy8gcG5wbSBidWlsZDpoNSBcdTY1RjZcdTVGOTdcdTUyMzAgPT4gYnVpbGQgcHJvZHVjdGlvblxyXG4gIC8vIHBucG0gZGV2Om1wLXdlaXhpbiBcdTY1RjZcdTVGOTdcdTUyMzAgPT4gYnVpbGQgZGV2ZWxvcG1lbnQgKFx1NkNFOFx1NjEwRlx1NTMzQVx1NTIyQlx1RkYwQ2NvbW1hbmRcdTRFM0FidWlsZClcclxuICAvLyBwbnBtIGJ1aWxkOm1wLXdlaXhpbiBcdTY1RjZcdTVGOTdcdTUyMzAgPT4gYnVpbGQgcHJvZHVjdGlvblxyXG4gIC8vIHBucG0gZGV2OmFwcCBcdTY1RjZcdTVGOTdcdTUyMzAgPT4gYnVpbGQgZGV2ZWxvcG1lbnQgKFx1NkNFOFx1NjEwRlx1NTMzQVx1NTIyQlx1RkYwQ2NvbW1hbmRcdTRFM0FidWlsZClcclxuICAvLyBwbnBtIGJ1aWxkOmFwcCBcdTY1RjZcdTVGOTdcdTUyMzAgPT4gYnVpbGQgcHJvZHVjdGlvblxyXG4gIC8vIGRldiBcdTU0OEMgYnVpbGQgXHU1NDdEXHU0RUU0XHU1M0VGXHU0RUU1XHU1MjA2XHU1MjJCXHU0RjdGXHU3NTI4IC5lbnYuZGV2ZWxvcG1lbnQgXHU1NDhDIC5lbnYucHJvZ
|