Files
zyt/TongjiUniApp/node_modules/@dcloudio/uni-app-uts/dist/plugins/js/plugin.js
T
2026-08-11 17:41:36 +08:00

124 lines
5.9 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.createUniAppJsEnginePlugin = exports.initUniAppJsEngineCssPlugin = void 0;
const path_1 = __importDefault(require("path"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
const utils_1 = require("../utils");
const css_1 = require("./css");
function initUniAppJsEngineCssPlugin(config) {
(0, uni_cli_shared_1.injectCssPlugin)(config, process.env.UNI_COMPILE_TARGET === 'uni_modules'
? {
createUrlReplacer: uni_cli_shared_1.createEncryptCssUrlReplacer,
}
: {});
(0, uni_cli_shared_1.injectCssPostPlugin)(config, (0, css_1.uniAppCssPlugin)(config));
}
exports.initUniAppJsEngineCssPlugin = initUniAppJsEngineCssPlugin;
function createUniAppJsEnginePlugin(platform) {
return function uniAppJsEnginePlugin() {
const inputDir = process.env.UNI_INPUT_DIR;
const outputDir = process.env.UNI_OUTPUT_DIR;
const uvueOutputDir = (0, uni_cli_shared_1.uvueOutDir)(platform);
const tscOutputDir = (0, uni_cli_shared_1.tscOutDir)(platform);
// 开始编译时,清空输出目录
function emptyOutDir() {
// ext-api 编译时,需要同时编译多个平台,并保留多个平台的输出目录
if (process.env.UNI_COMPILE_TARGET === 'ext-api') {
return;
}
if (fs_extra_1.default.existsSync(outputDir)) {
(0, uni_cli_shared_1.emptyDir)(outputDir);
}
}
emptyOutDir();
function emptyUVueDir() {
if (fs_extra_1.default.existsSync(uvueOutputDir)) {
(0, uni_cli_shared_1.emptyDir)(uvueOutputDir);
}
}
emptyUVueDir();
function emptyTscDir() {
if (fs_extra_1.default.existsSync(tscOutputDir)) {
(0, uni_cli_shared_1.emptyDir)(tscOutputDir);
}
}
emptyTscDir();
return {
name: 'uni:app-uts',
apply: 'build',
uni: (0, utils_1.createUniOptions)(platform),
config() {
return {
base: '/', // 强制 base
build: {
sourcemap: (0, uni_cli_shared_1.enableSourceMap)(), //enableSourceMap() ? 'hidden' : false,
emptyOutDir: false,
assetsInlineLimit: 0,
target: process.env.UNI_UTS_PLATFORM === 'app-ios'
? [
'ios12',
'es2020',
'edge88',
'firefox78',
'chrome87',
'safari14',
]
: process.env.UNI_UTS_PLATFORM === 'app-harmony'
? ['es2022']
: undefined,
rollupOptions: {
input: (0, uni_cli_shared_1.resolveMainPathOnce)(inputDir),
external: ['vue', '@vue/shared'],
output: {
name: 'AppService',
banner: ``,
format: 'iife',
entryFileNames: uni_cli_shared_1.APP_SERVICE_FILENAME,
globals: {
vue: 'Vue',
'@vue/shared': 'uni.VueShared',
},
sourcemapPathTransform: (relativeSourcePath, sourcemapPath) => {
return (0, uni_cli_shared_1.normalizePath)(path_1.default.relative(process.env.UNI_INPUT_DIR, path_1.default.resolve(path_1.default.dirname(sourcemapPath), relativeSourcePath)));
},
},
},
},
};
},
configResolved(config) {
(0, utils_1.configResolved)(config);
initUniAppJsEngineCssPlugin(config);
},
generateBundle(_, bundle) {
const APP_SERVICE_FILENAME_MAP = uni_cli_shared_1.APP_SERVICE_FILENAME + '.map';
const appServiceMap = bundle[APP_SERVICE_FILENAME_MAP];
if (appServiceMap && appServiceMap.type === 'asset') {
const source = JSON.parse(appServiceMap.source);
source.sourceRoot = (0, uni_cli_shared_1.normalizePath)(inputDir);
const newSourceMapFileName = path_1.default.resolve(process.env.UNI_APP_X_CACHE_DIR, 'sourcemap', APP_SERVICE_FILENAME_MAP);
fs_extra_1.default.outputFileSync(newSourceMapFileName, JSON.stringify(source));
delete bundle[APP_SERVICE_FILENAME_MAP];
const appService = bundle[uni_cli_shared_1.APP_SERVICE_FILENAME];
if (appService && appService.type === 'chunk') {
appService.code = appService.code.replace(`//# sourceMappingURL=app-service.js.map`, `//# sourceMappingURL=` +
path_1.default.relative(process.env.UNI_OUTPUT_DIR, newSourceMapFileName));
}
}
},
async writeBundle() {
// x 上暂时编译所有uni ext api,不管代码里是否调用了
// 框架内部编译时,不需要
if (process.env.UNI_COMPILE_TARGET !== 'ext-api') {
await (0, uni_cli_shared_1.buildUniExtApis)();
}
},
};
};
}
exports.createUniAppJsEnginePlugin = createUniAppJsEnginePlugin;