68 lines
2.6 KiB
JavaScript
68 lines
2.6 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.uniSSRPlugin = void 0;
|
|
const path_1 = __importDefault(require("path"));
|
|
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
|
|
const utils_1 = require("../utils");
|
|
const ENTRY_SERVER_JS = 'entry-server.js';
|
|
function uniSSRPlugin() {
|
|
let entryServerJs;
|
|
let resolvedConfig;
|
|
const entryServerJsCode = (0, utils_1.generateSsrEntryServerCode)();
|
|
return {
|
|
name: 'uni:h5-ssr',
|
|
config(userConfig, env) {
|
|
if ((0, uni_cli_shared_1.isSsr)(env.command, userConfig)) {
|
|
(0, utils_1.initSsrAliasOnce)();
|
|
(0, utils_1.rewriteSsrVue)();
|
|
(0, utils_1.rewriteSsrNativeTag)();
|
|
(0, utils_1.rewriteSsrRenderStyle)(process.env.UNI_INPUT_DIR);
|
|
return {
|
|
resolve: {
|
|
alias: [
|
|
{
|
|
find: 'vue',
|
|
replacement: (0, uni_cli_shared_1.resolveBuiltIn)('@dcloudio/uni-h5-vue/dist/vue.runtime.esm.js'),
|
|
},
|
|
{
|
|
find: 'vue/server-renderer',
|
|
replacement: (0, uni_cli_shared_1.resolveBuiltIn)('@vue/server-renderer'),
|
|
},
|
|
],
|
|
},
|
|
};
|
|
}
|
|
},
|
|
configResolved(config) {
|
|
resolvedConfig = config;
|
|
entryServerJs = path_1.default.join(process.env.UNI_INPUT_DIR, ENTRY_SERVER_JS);
|
|
if ((0, uni_cli_shared_1.isSsr)(resolvedConfig.command, resolvedConfig)) {
|
|
(0, utils_1.initSsrDefine)(resolvedConfig);
|
|
}
|
|
},
|
|
resolveId(id) {
|
|
if (id.endsWith(ENTRY_SERVER_JS)) {
|
|
return entryServerJs;
|
|
}
|
|
},
|
|
load(id) {
|
|
if (id.endsWith(ENTRY_SERVER_JS)) {
|
|
return entryServerJsCode;
|
|
}
|
|
},
|
|
generateBundle(_options, bundle) {
|
|
const chunk = bundle['entry-server.js'];
|
|
if (chunk) {
|
|
chunk.code =
|
|
(0, utils_1.generateSsrDefineCode)(resolvedConfig, (0, uni_cli_shared_1.parseRpx2UnitOnce)(process.env.UNI_INPUT_DIR, process.env.UNI_PLATFORM)) +
|
|
'\n' +
|
|
chunk.code;
|
|
}
|
|
},
|
|
};
|
|
}
|
|
exports.uniSSRPlugin = uniSSRPlugin;
|