更新
This commit is contained in:
+67
@@ -0,0 +1,67 @@
|
||||
"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/server-renderer',
|
||||
replacement: path_1.default.dirname((0, uni_cli_shared_1.resolveBuiltIn)('@vue/server-renderer')),
|
||||
},
|
||||
{
|
||||
find: 'vuex',
|
||||
replacement: path_1.default.dirname((0, uni_cli_shared_1.resolveBuiltIn)('vuex/package.json')),
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
}
|
||||
},
|
||||
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;
|
||||
Reference in New Issue
Block a user