提交 51111f73 编写于 作者: fxy060608's avatar fxy060608

fix(h5): ssr

上级 2da0ef30
......@@ -21,8 +21,9 @@ export const parseRpx2UnitOnce = once((inputDir: string) => {
interface CompilerCompatConfig {
MODE?: 2 | 3
}
function parseCompatConfig(inputDir: string): CompilerCompatConfig {
return parseManifestJsonOnce(inputDir).compatConfig || {}
function parseCompatConfig(_inputDir: string): CompilerCompatConfig {
// 不支持 mode:2
return { MODE: 3 } //parseManifestJsonOnce(inputDir).compatConfig || {}
}
export const parseCompatConfigOnce = once(parseCompatConfig)
......
......@@ -4,6 +4,23 @@ import { isInHBuilderX, UniVitePlugin } from '@dcloudio/uni-cli-shared'
import { createHandleHotUpdate } from './handleHotUpdate'
import { createTransformIndexHtml } from './transformIndexHtml'
import { createDefine } from '../utils/features'
import { isSsr } from '../utils'
import { ViteDevServer } from 'vite'
const external = [
'@dcloudio/uni-app',
'@dcloudio/uni-cloud',
'@dcloudio/uni-h5',
'@dcloudio/uni-h5-vue',
'@dcloudio/uni-i18n',
'@dcloudio/uni-shared',
'@dcloudio/uni-stat',
'@vue/shared',
'vue',
'vue-i18n',
'vue-router',
'vuex',
]
export const UniH5Plugin: UniVitePlugin = {
name: 'vite:uni-h5',
......@@ -34,12 +51,43 @@ export const UniH5Plugin: UniVitePlugin = {
strict: false,
},
},
ssr: {
external,
},
build: {
rollupOptions: {
// resolveSSRExternal 会判定package.json,hbx 工程可能没有,通过 rollup 来配置
external: isSsr(env.command, config) ? external : [],
},
},
}
},
configResolved(config) {
// TODO 禁止 optimizeDeps
;(config as any).cacheDir = ''
},
configureServer(server: ViteDevServer) {
const { ssrLoadModule } = server
let added = false
server.ssrLoadModule = (url) => {
const res = ssrLoadModule(url)
if (!added) {
// HBuilderX项目,根目录可能没有package.json,导致 ssrExternals 不生效
added = true
if ((server as any)._ssrExternals) {
const { _ssrExternals } = server as unknown as {
_ssrExternals: string[]
}
external.forEach((module) => {
if (!_ssrExternals.includes(module)) {
_ssrExternals.push(module)
}
})
}
}
return res
}
},
handleHotUpdate: createHandleHotUpdate(),
transformIndexHtml: createTransformIndexHtml(),
}
'use strict';
var version = "3.0.0-alpha-3000020210826001";
var version = "3.0.0-alpha-3000020210827002";
const STAT_VERSION = version;
const STAT_URL = 'https://tongji.dcloud.io/uni/stat';
......
var version = "3.0.0-alpha-3000020210826001";
var version = "3.0.0-alpha-3000020210827002";
const STAT_VERSION = version;
const STAT_URL = 'https://tongji.dcloud.io/uni/stat';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册