uni-ticket-system/node_modules/@dcloudio/uni-app-vite/dist/vue/plugin/index.js
2023-12-05 10:11:10 +08:00

113 lines
4.8 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.uniAppVuePlugin = 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 renderjs_1 = require("../plugins/renderjs");
const configResolved_1 = require("../../plugin/configResolved");
const utils_1 = require("../../utils");
const code_1 = require("@dcloudio/uni-cli-shared/dist/json/app/pages/code");
function uniAppVuePlugin() {
const inputDir = process.env.UNI_INPUT_DIR;
const mainPath = (0, uni_cli_shared_1.resolveMainPathOnce)(inputDir);
let appCss = '';
function normalizeCssChunkFilename(id) {
return (0, uni_cli_shared_1.removeExt)((0, uni_cli_shared_1.normalizePath)(path_1.default.relative(inputDir, id))) + '.css';
}
return {
name: 'uni:app-vue',
config() {
return {
css: {
postcss: {
plugins: (0, uni_cli_shared_1.initPostcssPlugin)({
uniApp: (0, uni_cli_shared_1.parseRpx2UnitOnce)(inputDir, process.env.UNI_PLATFORM),
}),
},
},
build: {
rollupOptions: {
external: ['vue', '@vue/shared'],
output: {
name: 'AppService',
banner: uni_cli_shared_1.polyfillCode + code_1.restoreGlobalCode,
format: process.env.UNI_APP_CODE_SPLITING ? 'amd' : 'iife',
amd: {
autoId: true,
},
entryFileNames: uni_cli_shared_1.APP_SERVICE_FILENAME,
globals: {
vue: 'Vue',
'@vue/shared': 'uni.VueShared',
},
},
},
},
};
},
configResolved: (0, configResolved_1.createConfigResolved)({
createCssPostPlugin(config) {
return (0, uni_cli_shared_1.cssPostPlugin)(config, {
platform: 'app',
chunkCssFilename(id) {
if (id === mainPath) {
return 'app.css';
}
else if ((0, uni_cli_shared_1.isUniPageSfcFile)(id, inputDir)) {
return normalizeCssChunkFilename(id);
}
},
chunkCssCode(filename, cssCode) {
if (filename === 'app.css') {
if (!appCss) {
appCss = fs_extra_1.default.readFileSync((0, uni_cli_shared_1.resolveBuiltIn)('@dcloudio/uni-app-plus/dist/style.css'), 'utf8');
}
return appCss + '\n' + cssCode;
}
return cssCode;
},
});
},
}),
generateBundle(_, bundle) {
this.emitFile({
fileName: '__uniappview.html',
source: genViewHtml(bundle),
type: 'asset',
});
},
};
}
exports.uniAppVuePlugin = uniAppVuePlugin;
function genViewHtml(bundle) {
const viewHtmlStr = fs_extra_1.default.readFileSync(path_1.default.join(utils_1.templateDir, '__uniappview.html'), 'utf8');
const { globalStyle } = (0, uni_cli_shared_1.parsePagesJsonOnce)(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM);
const { darkmode = false } = (0, uni_cli_shared_1.getPlatformManifestJsonOnce)();
const __uniConfig = {
globalStyle: {
rpxCalcMaxDeviceWidth: globalStyle.rpxCalcMaxDeviceWidth,
rpxCalcBaseDeviceWidth: globalStyle.rpxCalcBaseDeviceWidth,
},
darkmode,
};
const wxsCode = bundle[renderjs_1.APP_WXS_JS]
? `<script src="${renderjs_1.APP_WXS_JS}"></script>`
: '';
const renderjsCode = bundle[renderjs_1.APP_RENDERJS_JS]
? `<script src="${renderjs_1.APP_RENDERJS_JS}"></script>`
: '';
const automatorCode = process.env.UNI_AUTOMATOR_WS_ENDPOINT
? `<script src="__uniappautomator.js"></script>`
: '';
return viewHtmlStr
.toString()
.replace('<!--wxsCode-->', wxsCode)
.replace('<!--renderjsCode-->', renderjsCode)
.replace('<!--automatorCode-->', automatorCode)
.replace('/*__uniConfig*/', `var __uniConfig = ${JSON.stringify(__uniConfig)}`);
}