uni-ticket-system/node_modules/@dcloudio/uni-app-uts/dist/plugins/manifestJson.js
2023-12-05 10:11:10 +08:00

88 lines
3.5 KiB
JavaScript
Raw 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.

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.uniAppManifestPlugin = exports.getOutputManifestJson = 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");
function isManifest(id) {
return id.endsWith(uni_cli_shared_1.MANIFEST_JSON_UTS);
}
let outputManifestJson = undefined;
function getOutputManifestJson() {
return outputManifestJson;
}
exports.getOutputManifestJson = getOutputManifestJson;
function uniAppManifestPlugin() {
const manifestJsonPath = path_1.default.resolve(process.env.UNI_INPUT_DIR, 'manifest.json');
const manifestJsonUTSPath = path_1.default.resolve(process.env.UNI_INPUT_DIR, uni_cli_shared_1.MANIFEST_JSON_UTS);
let manifestJson = {};
return {
name: 'uni:app-manifest',
apply: 'build',
resolveId(id) {
if (isManifest(id)) {
return manifestJsonUTSPath;
}
},
load(id) {
if (isManifest(id)) {
return fs_extra_1.default.readFileSync(manifestJsonPath, 'utf8');
}
},
transform(code, id) {
if (isManifest(id)) {
this.addWatchFile(path_1.default.resolve(process.env.UNI_INPUT_DIR, 'manifest.json'));
manifestJson = (0, uni_cli_shared_1.parseJson)(code);
return `export default 'manifest.json'`;
}
},
generateBundle(_, bundle) {
if (bundle[utils_1.ENTRY_FILENAME]) {
const asset = bundle[utils_1.ENTRY_FILENAME];
const singleThread = manifestJson?.['uni-app-x']?.['singleThread'] === true
? `override singleThread: Boolean = true`
: '';
asset.source =
asset.source +
`
import { AppConfig } from "io.dcloud.uniapp.appframe"
export class UniAppConfig extends AppConfig {
override name: string = "${manifestJson.name || ''}"
override appid: string = "${manifestJson.appid || ''}"
override versionName: string = "${manifestJson.versionName || ''}"
override versionCode: string = "${manifestJson.versionCode || ''}"
override uniCompileVersion: string = "${process.env.UNI_COMPILER_VERSION || ''}"
// override tabBar = __uniTabBar
// override launchPage = __uniLaunchPage
${singleThread}
constructor() {}
}
`;
}
},
writeBundle() {
const app = manifestJson.app || {};
outputManifestJson = {
id: manifestJson.appid || '',
name: manifestJson.name || '',
description: manifestJson.description || '',
version: {
name: manifestJson.versionName || '',
code: manifestJson.versionCode || '',
},
'uni-app-x': manifestJson['uni-app-x'] || {},
app,
};
if (process.env.NODE_ENV !== 'production') {
// 发行模式下需要等解析ext-api模块
fs_extra_1.default.outputFileSync(path_1.default.resolve(process.env.UNI_OUTPUT_DIR, 'manifest.json'), JSON.stringify(outputManifestJson, null, 2));
}
},
};
}
exports.uniAppManifestPlugin = uniAppManifestPlugin;