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

wip(app): nvue

上级 dcf76bc7
...@@ -8,6 +8,7 @@ import { ...@@ -8,6 +8,7 @@ import {
import { uniEasycomPlugin } from '../plugins/easycom' import { uniEasycomPlugin } from '../plugins/easycom'
import { uniManifestJsonPlugin } from '../plugins/manifestJson' import { uniManifestJsonPlugin } from '../plugins/manifestJson'
import { uniStatsPlugin } from '../plugins/stats' import { uniStatsPlugin } from '../plugins/stats'
import { uniTemplatePlugin } from '../plugins/template'
import { uniAppNVuePlugin } from './plugin' import { uniAppNVuePlugin } from './plugin'
import { uniAppCssPlugin } from './plugins/appCss' import { uniAppCssPlugin } from './plugins/appCss'
import { uniEsbuildPlugin } from './plugins/esbuild' import { uniEsbuildPlugin } from './plugins/esbuild'
...@@ -30,5 +31,6 @@ export function initNVuePlugins() { ...@@ -30,5 +31,6 @@ export function initNVuePlugins() {
uniStatsPlugin(), uniStatsPlugin(),
uniAppNVuePlugin({ appService }), uniAppNVuePlugin({ appService }),
uniEsbuildPlugin({ renderer, appService }), uniEsbuildPlugin({ renderer, appService }),
...(appService ? [uniTemplatePlugin({ renderer })] : []),
] ]
} }
...@@ -3,6 +3,7 @@ import type { Plugin } from 'vite' ...@@ -3,6 +3,7 @@ import type { Plugin } from 'vite'
import path from 'path' import path from 'path'
import colors from 'picocolors' import colors from 'picocolors'
import { import {
APP_SERVICE_FILENAME,
commonjsProxyRE, commonjsProxyRE,
createTransformTag, createTransformTag,
cssLangRE, cssLangRE,
...@@ -66,18 +67,19 @@ export function uniAppNVuePlugin({ ...@@ -66,18 +67,19 @@ export function uniAppNVuePlugin({
}, },
build: { build: {
lib: { lib: {
name: 'AppService',
// 必须使用 lib 模式,否则会生成 preload 等代码 // 必须使用 lib 模式,否则会生成 preload 等代码
fileName: 'app', fileName: appService ? 'app-service' : 'app',
entry: mainPath, entry: mainPath,
formats: ['es'], formats: [appService ? 'iife' : 'es'],
}, },
outDir: nvueOutDir(appService), outDir: appService ? process.env.UNI_OUTPUT_DIR : nvueOutDir(),
rollupOptions: { rollupOptions: {
external: external(appService), external: external(appService),
output: { output: {
entryFileNames(chunk) { entryFileNames(chunk) {
if (chunk.name === 'main') { if (chunk.name === 'main' && chunk.isEntry) {
return 'app.js' return appService ? APP_SERVICE_FILENAME : 'app.js'
} }
return chunk.name + '.js' return chunk.name + '.js'
}, },
......
...@@ -5,10 +5,7 @@ import path from 'path' ...@@ -5,10 +5,7 @@ import path from 'path'
import fs from 'fs-extra' import fs from 'fs-extra'
import debug from 'debug' import debug from 'debug'
import { import { transformWithEsbuild } from '@dcloudio/uni-cli-shared'
APP_SERVICE_FILENAME,
transformWithEsbuild,
} from '@dcloudio/uni-cli-shared'
import { nvueOutDir } from '../../utils' import { nvueOutDir } from '../../utils'
import { esbuildGlobals } from '../utils' import { esbuildGlobals } from '../utils'
...@@ -52,15 +49,6 @@ export function uniEsbuildPlugin({ ...@@ -52,15 +49,6 @@ export function uniEsbuildPlugin({
entryPoints.push(name) entryPoints.push(name)
} }
}) })
if (appService) {
debugEsbuild('start', APP_SERVICE_FILENAME)
await buildNVueAppService(buildOptions).then((code) => {
return fs.outputFile(
path.resolve(outputDir, APP_SERVICE_FILENAME),
code
)
})
}
debugEsbuild('start', entryPoints.length, entryPoints) debugEsbuild('start', entryPoints.length, entryPoints)
for (const filename of entryPoints) { for (const filename of entryPoints) {
await buildNVuePage(renderer, filename, buildOptions).then((code) => { await buildNVuePage(renderer, filename, buildOptions).then((code) => {
...@@ -72,19 +60,6 @@ export function uniEsbuildPlugin({ ...@@ -72,19 +60,6 @@ export function uniEsbuildPlugin({
} }
} }
function buildNVueAppService(options: BuildOptions) {
return transformWithEsbuild(
`import './app.js'`,
path.join(nvueOutDir(true), 'main.js'),
options
).then((res) => {
if (res.outputFiles) {
return res.outputFiles[0].text
}
return ''
})
}
function buildNVuePage( function buildNVuePage(
renderer: 'native' | undefined, renderer: 'native' | undefined,
filename: string, filename: string,
...@@ -106,7 +81,7 @@ App.mpType = 'page' ...@@ -106,7 +81,7 @@ App.mpType = 'page'
const app = Vue.createApp(App,{$store:getApp().$store,__pageId,__pagePath,__pageQuery}) const app = Vue.createApp(App,{$store:getApp().$store,__pageId,__pagePath,__pageQuery})
app.provide('__globalStyles', Vue.useCssStyles([...AppStyles, ...(App.styles||[])])) app.provide('__globalStyles', Vue.useCssStyles([...AppStyles, ...(App.styles||[])]))
app.mount('#root')`, app.mount('#root')`,
path.join(nvueOutDir(false), 'main.js'), path.join(nvueOutDir(), 'main.js'),
options options
).then((res) => { ).then((res) => {
if (res.outputFiles) { if (res.outputFiles) {
......
import { defineUniMainJsPlugin, PAGES_JSON_JS } from '@dcloudio/uni-cli-shared' import {
defineUniMainJsPlugin,
MANIFEST_JSON_JS,
PAGES_JSON_JS,
} from '@dcloudio/uni-cli-shared'
import { APP_CSS_JS } from './appCss' import { APP_CSS_JS } from './appCss'
export function uniMainJsPlugin({ export function uniMainJsPlugin({
...@@ -14,12 +18,19 @@ export function uniMainJsPlugin({ ...@@ -14,12 +18,19 @@ export function uniMainJsPlugin({
enforce: 'pre', enforce: 'pre',
transform(code, id) { transform(code, id) {
if (opts.filter(id)) { if (opts.filter(id)) {
if (renderer) { if (renderer !== 'native') {
return {
code: `import './${PAGES_JSON_JS}';import('${APP_CSS_JS}').then(()=>{})`,
map: { mappings: '' },
}
}
if (appService) { if (appService) {
code = code.includes('createSSRApp') code = code.includes('createSSRApp')
? createApp(code) ? createApp(code)
: createLegacyApp(code) : createLegacyApp(code)
return { return {
code:
`import './${MANIFEST_JSON_JS}';\nimport './${PAGES_JSON_JS}';\n` +
code, code,
map: { mappings: '' }, map: { mappings: '' },
} }
...@@ -29,11 +40,6 @@ export function uniMainJsPlugin({ ...@@ -29,11 +40,6 @@ export function uniMainJsPlugin({
map: { mappings: '' }, map: { mappings: '' },
} }
} }
return {
code: `import './${PAGES_JSON_JS}';import('${APP_CSS_JS}').then(()=>{})`,
map: { mappings: '' },
}
}
}, },
} }
}) })
...@@ -43,7 +49,7 @@ function createApp(code: string) { ...@@ -43,7 +49,7 @@ function createApp(code: string) {
return `${code.replace( return `${code.replace(
'createSSRApp', 'createSSRApp',
'createVueApp as createSSRApp' 'createVueApp as createSSRApp'
)};const {app:__app__,Vuex:__Vuex__,Pinia:__Pinia__}=createApp();uni.Vuex=__Vuex__;uni.Pinia=__Pinia__;__app__._component.mpType='app';__app__._component.render=()=>{};__app__.mount("#app");` )};const {app:__app__,Vuex:__Vuex__,Pinia:__Pinia__}=createApp();uni.Vuex=__Vuex__;uni.Pinia=__Pinia__;__app__._component.mpType='app';__app__._component.render=()=>{};__app__.mount({appendChild(){}});`
} }
function createLegacyApp(code: string) { function createLegacyApp(code: string) {
......
...@@ -8,7 +8,7 @@ import { ...@@ -8,7 +8,7 @@ import {
parseManifestJsonOnce, parseManifestJsonOnce,
getLocaleFiles, getLocaleFiles,
normalizeAppNVuePagesJson, normalizeAppNVuePagesJson,
MANIFEST_JSON_JS, APP_CONFIG_SERVICE,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
export function uniPagesJsonPlugin({ export function uniPagesJsonPlugin({
...@@ -40,9 +40,9 @@ export function uniPagesJsonPlugin({ ...@@ -40,9 +40,9 @@ export function uniPagesJsonPlugin({
) )
} }
}) })
if (renderer === 'native' && !appService) { if (renderer === 'native' && appService) {
this.emitFile({ this.emitFile({
fileName: `app-config-service.js`, fileName: APP_CONFIG_SERVICE,
type: 'asset', type: 'asset',
source: normalizeAppConfigService( source: normalizeAppConfigService(
pagesJson, pagesJson,
...@@ -50,9 +50,7 @@ export function uniPagesJsonPlugin({ ...@@ -50,9 +50,7 @@ export function uniPagesJsonPlugin({
), ),
}) })
return { return {
code: code: '',
`import './${MANIFEST_JSON_JS}'\n` +
normalizeAppNVuePagesJson(pagesJson),
map: { mappings: '' }, map: { mappings: '' },
} }
} }
......
...@@ -22,7 +22,7 @@ export function buildOptions( ...@@ -22,7 +22,7 @@ export function buildOptions(
const outputDir = process.env.UNI_OUTPUT_DIR const outputDir = process.env.UNI_OUTPUT_DIR
// 开始编译时,清空输出目录 // 开始编译时,清空输出目录
function emptyNVueDir() { function emptyNVueDir() {
const nvueOutputDir = nvueOutDir(false) const nvueOutputDir = nvueOutDir()
if (fs.existsSync(nvueOutputDir)) { if (fs.existsSync(nvueOutputDir)) {
emptyDir(nvueOutputDir) emptyDir(nvueOutputDir)
} }
......
...@@ -2,6 +2,7 @@ import path from 'path' ...@@ -2,6 +2,7 @@ import path from 'path'
import { Plugin } from 'vite' import { Plugin } from 'vite'
import { import {
APP_CONFIG,
defineUniManifestJsonPlugin, defineUniManifestJsonPlugin,
getLocaleFiles, getLocaleFiles,
normalizeAppManifestJson, normalizeAppManifestJson,
...@@ -30,7 +31,7 @@ export function uniManifestJsonPlugin(): Plugin { ...@@ -30,7 +31,7 @@ export function uniManifestJsonPlugin(): Plugin {
// 生成一个空的 app-config.js,兼容基座已有规范 // 生成一个空的 app-config.js,兼容基座已有规范
this.emitFile({ this.emitFile({
fileName: `app-config.js`, fileName: APP_CONFIG,
type: 'asset', type: 'asset',
source: '(function(){})();', source: '(function(){})();',
}) })
......
...@@ -3,13 +3,18 @@ import fs from 'fs-extra' ...@@ -3,13 +3,18 @@ import fs from 'fs-extra'
import { Plugin } from 'vite' import { Plugin } from 'vite'
import { templateDir } from '../utils' import { templateDir } from '../utils'
export function uniTemplatePlugin(): Plugin { export function uniTemplatePlugin({
renderer,
}: {
renderer?: 'native'
} = {}): Plugin {
let outputDir: string let outputDir: string
return { return {
name: 'uni:app-template', name: 'uni:app-template',
enforce: 'post', enforce: 'post',
configResolved() { configResolved() {
outputDir = process.env.UNI_OUTPUT_DIR outputDir = process.env.UNI_OUTPUT_DIR
if (renderer !== 'native') {
fs.copySync( fs.copySync(
require.resolve('@dcloudio/uni-app-plus/dist/uni-app-view.umd.js'), require.resolve('@dcloudio/uni-app-plus/dist/uni-app-view.umd.js'),
path.resolve(outputDir, 'uni-app-view.umd.js'), path.resolve(outputDir, 'uni-app-view.umd.js'),
...@@ -17,9 +22,18 @@ export function uniTemplatePlugin(): Plugin { ...@@ -17,9 +22,18 @@ export function uniTemplatePlugin(): Plugin {
overwrite: true, overwrite: true,
} }
) )
}
fs.copySync(templateDir, outputDir, { fs.copySync(templateDir, outputDir, {
overwrite: true, overwrite: true,
filter(src) { filter(src) {
if (renderer === 'native') {
if (
src.includes('__uniappquill') ||
src.includes('__uniappautomator')
) {
return false
}
}
return !src.includes('__uniappview.html') return !src.includes('__uniappview.html')
}, },
}) })
......
import path from 'path' import path from 'path'
export const templateDir = path.resolve(__dirname, '../lib/template/') export const templateDir = path.resolve(__dirname, '../lib/template/')
export function nvueOutDir(appService: boolean) { export function nvueOutDir() {
return path.join( return path.join(process.env.UNI_OUTPUT_DIR, '../.nvue')
process.env.UNI_OUTPUT_DIR,
'../.nvue' + (appService ? '/.app-service' : '')
)
} }
...@@ -9,6 +9,7 @@ import { ...@@ -9,6 +9,7 @@ import {
parseManifestJsonOnce, parseManifestJsonOnce,
getLocaleFiles, getLocaleFiles,
MANIFEST_JSON_JS, MANIFEST_JSON_JS,
APP_CONFIG_SERVICE,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
export function uniPagesJsonPlugin(): Plugin { export function uniPagesJsonPlugin(): Plugin {
...@@ -35,7 +36,7 @@ export function uniPagesJsonPlugin(): Plugin { ...@@ -35,7 +36,7 @@ export function uniPagesJsonPlugin(): Plugin {
} }
}) })
this.emitFile({ this.emitFile({
fileName: `app-config-service.js`, fileName: APP_CONFIG_SERVICE,
type: 'asset', type: 'asset',
source: normalizeAppConfigService( source: normalizeAppConfigService(
pagesJson, pagesJson,
......
...@@ -9722,4 +9722,5 @@ var createApp = function () { ...@@ -9722,4 +9722,5 @@ var createApp = function () {
return app; return app;
}; };
export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, injectHook, isInSSRComponentSetup, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, toHandlers, transformVNodeArgs, useAttrs, useCssModule, useCssStyles, useCssVars, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId }; var createVueApp = createApp;
export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, createVueApp, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, injectHook, isInSSRComponentSetup, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, toHandlers, transformVNodeArgs, useAttrs, useCssModule, useCssStyles, useCssVars, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
...@@ -7985,4 +7985,5 @@ var createApp = function () { ...@@ -7985,4 +7985,5 @@ var createApp = function () {
return app; return app;
}; };
export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, injectHook, isInSSRComponentSetup, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, toHandlers, transformVNodeArgs, useAttrs, useCssModule, useCssStyles, useCssVars, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId }; var createVueApp = createApp;
export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, createVueApp, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, injectHook, isInSSRComponentSetup, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, toHandlers, transformVNodeArgs, useAttrs, useCssModule, useCssStyles, useCssVars, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
...@@ -8121,5 +8121,6 @@ const createApp = ((...args) => { ...@@ -8121,5 +8121,6 @@ const createApp = ((...args) => {
}; };
return app; return app;
}); });
const createVueApp = createApp;
export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, injectHook, isInSSRComponentSetup, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, toHandlers, transformVNodeArgs, useAttrs, useCssModule, useCssStyles, useCssVars, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId }; export { BaseTransition, Comment, Fragment, KeepAlive, Static, Suspense, Teleport, Text, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, createVueApp, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineProps, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, initCustomFormatter, inject, injectHook, isInSSRComponentSetup, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, toHandlers, transformVNodeArgs, useAttrs, useCssModule, useCssStyles, useCssVars, useSSRContext, useSlots, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };
...@@ -25,6 +25,8 @@ export const JSON_JS_MAP = { ...@@ -25,6 +25,8 @@ export const JSON_JS_MAP = {
export const ASSETS_INLINE_LIMIT = 40 * 1024 export const ASSETS_INLINE_LIMIT = 40 * 1024
export const APP_SERVICE_FILENAME = 'app-service.js' export const APP_SERVICE_FILENAME = 'app-service.js'
export const APP_CONFIG = 'app-config.js'
export const APP_CONFIG_SERVICE = 'app-config-service.js'
export const BINDING_COMPONENTS = '__BINDING_COMPONENTS__' export const BINDING_COMPONENTS = '__BINDING_COMPONENTS__'
// APP 平台解析页面后缀的优先级 // APP 平台解析页面后缀的优先级
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册