| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.uniManifestJsonPlugin = void 0;
- const fs_1 = __importDefault(require("fs"));
- const path_1 = __importDefault(require("path"));
- const shared_1 = require("@vue/shared");
- const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
- function findUserProjectConfigFile(inputDir, config) {
- for (let i = 0; i < config.length; i++) {
- const projectFilename = path_1.default.resolve(inputDir, config[i]);
- // 根目录包含指定文件,则直接拷贝
- if (fs_1.default.existsSync(projectFilename)) {
- return projectFilename;
- }
- }
- }
- function uniManifestJsonPlugin(options) {
- return (0, uni_cli_shared_1.defineUniManifestJsonPlugin)((opts) => {
- const inputDir = process.env.UNI_INPUT_DIR;
- const platform = process.env.UNI_PLATFORM;
- let projectJson;
- let userProjectFilename;
- let projectSource;
- if (options.project) {
- userProjectFilename = findUserProjectConfigFile(inputDir, options.project.config);
- }
- return {
- name: 'uni:mp-manifest-json',
- enforce: 'pre',
- transform(code, id) {
- if (!opts.filter(id)) {
- return;
- }
- this.addWatchFile(path_1.default.resolve(inputDir, 'manifest.json'));
- (0, uni_cli_shared_1.getLocaleFiles)(path_1.default.resolve(inputDir, 'locale')).forEach((filepath) => {
- this.addWatchFile(filepath);
- });
- if (options.project) {
- // 根目录包含指定文件,则直接拷贝
- if (userProjectFilename) {
- this.addWatchFile(userProjectFilename);
- projectJson = (0, uni_cli_shared_1.parseJson)(fs_1.default.readFileSync(userProjectFilename, 'utf8'));
- }
- else {
- const template = options.project.source;
- if ((0, shared_1.hasOwn)(template, 'appid')) {
- let projectName = path_1.default.basename(inputDir);
- if (projectName === 'src') {
- projectName = path_1.default.basename(path_1.default.dirname(inputDir));
- }
- template.projectname = projectName;
- // TODO condition
- if (process.env.UNI_AUTOMATOR_WS_ENDPOINT) {
- if (!template.setting) {
- template.setting = {};
- }
- template.setting.urlCheck = false;
- }
- projectJson = (0, uni_cli_shared_1.parseMiniProgramProjectJson)(code, platform, {
- template,
- pagesJson: (0, uni_cli_shared_1.parsePagesJsonOnce)(inputDir, platform),
- });
- }
- else {
- // 无需解析,直接拷贝,如 quickapp-webview
- projectJson = template;
- }
- }
- }
- return {
- code: '',
- map: { mappings: '' },
- };
- },
- generateBundle() {
- if (projectJson && options.project) {
- const { filename, normalize } = options.project;
- const source = JSON.stringify(normalize ? normalize(projectJson) : projectJson, null, 2);
- if (projectSource !== source) {
- projectSource = source;
- this.emitFile({
- fileName: filename,
- type: 'asset',
- source,
- });
- }
- }
- },
- };
- });
- }
- exports.uniManifestJsonPlugin = uniManifestJsonPlugin;
|