2025/2/8第一次更新

This commit is contained in:
爱吃咸鱼小猫咪
2025-02-08 18:50:38 +08:00
commit d7af560866
26519 changed files with 5046029 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
import type { Plugin } from 'vite';
import type { VitePluginUniResolvedOptions } from '..';
export declare function uniCopyPlugin({ outputDir, copyOptions, }: Pick<VitePluginUniResolvedOptions, 'outputDir' | 'copyOptions'>): Plugin;
+96
View File
@@ -0,0 +1,96 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniCopyPlugin = void 0;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const debug_1 = __importDefault(require("debug"));
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const debugCopy = (0, debug_1.default)('uni:copy');
function uniCopyPlugin({ outputDir, copyOptions, }) {
const staticDir = uni_cli_shared_1.PUBLIC_DIR + '/**/*';
const uniModulesStaticDir = 'uni_modules/*/' + uni_cli_shared_1.PUBLIC_DIR + '/**/*';
const assets = [staticDir, uniModulesStaticDir];
const subpackages = (0, uni_cli_shared_1.parseSubpackagesRootOnce)(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM);
subpackages.forEach((root) => {
assets.push((0, uni_cli_shared_1.normalizePath)(path_1.default.join(root, staticDir)));
assets.push((0, uni_cli_shared_1.normalizePath)(path_1.default.join(root, uniModulesStaticDir)));
});
copyOptions.assets.forEach((asset) => {
assets.push(asset);
});
const inputDir = (0, uni_cli_shared_1.normalizePath)(process.env.UNI_INPUT_DIR);
const platform = process.env.UNI_PLATFORM;
// 非当前平台 static 目录
const ignorePlatformStaticDirs = (0, uni_cli_shared_1.getPlatforms)()
.filter((p) => {
if (platform === 'app') {
if (process.env.UNI_APP_X === 'true') {
return p !== 'app';
}
return p !== 'app' && p !== 'app-plus';
}
else if (platform === 'h5' || platform === 'web') {
return p !== 'h5' && p !== 'web';
}
else if (platform.startsWith('app-')) {
return p !== 'app' && p !== platform;
}
return p !== platform;
})
// 在最后增加 / 是为了避免误判以 platform 开头的目录,比如 app-test
.map((p) => '/' + uni_cli_shared_1.PUBLIC_DIR + '/' + p + '/');
const targets = [
{
src: assets,
dest: outputDir,
watchOptions: {
ignored(path) {
const normalizedPath = (0, uni_cli_shared_1.normalizePath)(path);
if (ignorePlatformStaticDirs.find((dir) =>
// dir都是以 / 结尾,所以这里也要以 / 结尾
(normalizedPath + '/').includes(dir))) {
return fs_1.default.statSync(normalizedPath).isDirectory();
}
// 应该是软链
if (!normalizedPath.startsWith(inputDir)) {
// 目前仅简单处理static
if (normalizedPath.includes('/static/')) {
return false;
}
return true;
}
return false;
},
},
},
];
targets.push(...copyOptions.targets);
debugCopy(targets);
checkIgnoreStatic(ignorePlatformStaticDirs.map((dir) => dir.substring(1).split('/')));
return (0, uni_cli_shared_1.uniViteCopyPlugin)({
targets,
});
}
exports.uniCopyPlugin = uniCopyPlugin;
let isIgnoreChecked = false;
function checkIgnoreStatic(ignoreStatic) {
if (isIgnoreChecked) {
return;
}
isIgnoreChecked = true;
const existIgnore = new Set();
ignoreStatic.forEach((ignore) => {
const dir = path_1.default.resolve(process.env.UNI_INPUT_DIR, ...ignore);
if (fs_1.default.existsSync(dir)) {
existIgnore.add(ignore.join('/'));
}
});
if (existIgnore.size) {
console.log('已忽略静态资源目录:' +
[...existIgnore].join('、') +
'。详见:https://uniapp.dcloud.net.cn/tutorial/platform.html#static');
}
}
+19
View File
@@ -0,0 +1,19 @@
import type { Plugin } from 'vite';
interface UniMovePluginOptions {
apply: Plugin['apply'];
enforce: Plugin['enforce'];
/**
* 原始根目录
*/
cwd: string;
/**
* glob pattern 如:**\/*.js.mp)
*/
pattern: string;
/**
* 目标目录
*/
dest: string;
}
export declare function uniMovePlugin({ apply, enforce, cwd, pattern, dest, }: UniMovePluginOptions): Plugin;
export {};
+28
View File
@@ -0,0 +1,28 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniMovePlugin = void 0;
const path_1 = __importDefault(require("path"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const fast_glob_1 = __importDefault(require("fast-glob"));
function uniMovePlugin({ apply, enforce, cwd, pattern, dest, }) {
return {
name: 'uni:move',
apply,
enforce,
async writeBundle() {
await Promise.all(fast_glob_1.default
.sync(pattern, {
cwd,
})
.map((filename) => {
return fs_extra_1.default.move(path_1.default.resolve(cwd, filename), path_1.default.resolve(dest, filename), {
overwrite: true,
});
}));
},
};
}
exports.uniMovePlugin = uniMovePlugin;