60 lines
2.4 KiB
JavaScript
60 lines
2.4 KiB
JavaScript
"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 platform = process.env.UNI_PLATFORM;
|
|
// 非当前平台 static 目录
|
|
const ignorePlatformStaticDirs = (0, uni_cli_shared_1.getPlatforms)()
|
|
.filter((p) => {
|
|
if (platform === 'app') {
|
|
return p !== 'app' && p !== 'app-plus';
|
|
}
|
|
else if (platform === 'h5' || platform === 'web') {
|
|
return p !== 'h5' && p !== 'web';
|
|
}
|
|
return p !== platform;
|
|
})
|
|
.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) => normalizedPath.includes(dir))) {
|
|
return fs_1.default.statSync(normalizedPath).isDirectory();
|
|
}
|
|
return false;
|
|
},
|
|
},
|
|
},
|
|
];
|
|
targets.push(...copyOptions.targets);
|
|
debugCopy(targets);
|
|
return (0, uni_cli_shared_1.uniViteCopyPlugin)({
|
|
targets,
|
|
verbose: process.env.DEBUG ? true : false,
|
|
});
|
|
}
|
|
exports.uniCopyPlugin = uniCopyPlugin;
|