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

wip(uts): compiler

上级 8c465081
...@@ -137,8 +137,8 @@ const props = { ...@@ -137,8 +137,8 @@ const props = {
}, },
title: { title: {
type: String, type: String,
default: '' default: '',
} },
} }
type EventName = type EventName =
......
...@@ -2,7 +2,6 @@ import { ...@@ -2,7 +2,6 @@ import {
defineUniMainJsPlugin, defineUniMainJsPlugin,
MANIFEST_JSON_JS, MANIFEST_JSON_JS,
PAGES_JSON_JS, PAGES_JSON_JS,
UNI_MODULES_EXPORTS,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
import { APP_CSS_JS } from './appCss' import { APP_CSS_JS } from './appCss'
...@@ -21,7 +20,7 @@ export function uniMainJsPlugin({ ...@@ -21,7 +20,7 @@ export function uniMainJsPlugin({
if (opts.filter(id)) { if (opts.filter(id)) {
if (renderer !== 'native') { if (renderer !== 'native') {
return { return {
code: `import './${PAGES_JSON_JS}';import '${UNI_MODULES_EXPORTS}';import('${APP_CSS_JS}').then(()=>{})`, code: `import './${PAGES_JSON_JS}';import('${APP_CSS_JS}').then(()=>{})`,
map: { mappings: '' }, map: { mappings: '' },
} }
} }
...@@ -31,13 +30,13 @@ export function uniMainJsPlugin({ ...@@ -31,13 +30,13 @@ export function uniMainJsPlugin({
: createLegacyApp(code) : createLegacyApp(code)
return { return {
code: code:
`import './${MANIFEST_JSON_JS}';\nimport './${PAGES_JSON_JS}';\nimport '${UNI_MODULES_EXPORTS}';\n` + `import './${MANIFEST_JSON_JS}';\nimport './${PAGES_JSON_JS}';\n` +
code, code,
map: { mappings: '' }, map: { mappings: '' },
} }
} }
return { return {
code: `import './${PAGES_JSON_JS}';import '${UNI_MODULES_EXPORTS}';`, code: `import './${PAGES_JSON_JS}';`,
map: { mappings: '' }, map: { mappings: '' },
} }
} }
......
import { import { defineUniMainJsPlugin, PAGES_JSON_JS } from '@dcloudio/uni-cli-shared'
defineUniMainJsPlugin,
PAGES_JSON_JS,
UNI_MODULES_EXPORTS,
} from '@dcloudio/uni-cli-shared'
export function uniMainJsPlugin() { export function uniMainJsPlugin() {
return defineUniMainJsPlugin((opts) => { return defineUniMainJsPlugin((opts) => {
...@@ -15,9 +11,7 @@ export function uniMainJsPlugin() { ...@@ -15,9 +11,7 @@ export function uniMainJsPlugin() {
? createApp(code) ? createApp(code)
: createLegacyApp(code) : createLegacyApp(code)
return { return {
code: code: `import './${PAGES_JSON_JS}';` + code,
`import './${PAGES_JSON_JS}';import '${UNI_MODULES_EXPORTS}';` +
code,
map: { mappings: '' }, map: { mappings: '' },
} }
} }
......
import { parseInjects } from '../src/uni_modules'
describe('uni_modules:uni-ext-api', () => {
test('parseInjects', () => {
expect(
parseInjects('app', `@/uni_modules/uni-getbatteryinfo`, {
uni: 'getBatteryInfo',
})
).toEqual({
'uni.getBatteryInfo': '@/uni_modules/uni-getbatteryinfo',
})
expect(
parseInjects('app', `@/uni_modules/uni-getbatteryinfo`, {
uni: ['getBatteryInfo'],
})
).toEqual({
'uni.getBatteryInfo': [
'@/uni_modules/uni-getbatteryinfo',
'getBatteryInfo',
],
})
expect(
parseInjects('app', `@/uni_modules/uni-location`, {
uni: ['openLocation', 'chooseLocation'],
})
).toEqual({
'uni.openLocation': ['@/uni_modules/uni-location', 'openLocation'],
'uni.chooseLocation': ['@/uni_modules/uni-location', 'chooseLocation'],
})
expect(
parseInjects('app', `@/uni_modules/uni-capturescreen`, {
uni: {
onUserCaptureScreen: 'onCaptureScreen',
offUserCaptureScreen: 'offUserCaptureScreen',
},
})
).toEqual({
'uni.onUserCaptureScreen': [
'@/uni_modules/uni-capturescreen',
'onCaptureScreen',
],
'uni.offUserCaptureScreen': [
'@/uni_modules/uni-capturescreen',
'offUserCaptureScreen',
],
})
})
test('parseInjects with platform', () => {
expect(
parseInjects('web', `@/uni_modules/uni-getbatteryinfo`, {
uni: 'getBatteryInfo1',
web: {
uni: 'getBatteryInfo',
},
})
).toEqual({
'uni.getBatteryInfo': '@/uni_modules/uni-getbatteryinfo',
})
expect(
parseInjects('web', `@/uni_modules/uni-getbatteryinfo`, {
uni: 'getBatteryInfo1',
web: false,
})
).toEqual({})
expect(
parseInjects('web', `@/uni_modules/uni-location`, {
uni: ['openLocation'],
web: {
uni: ['chooseLocation'],
},
})
).toEqual({
'uni.chooseLocation': ['@/uni_modules/uni-location', 'chooseLocation'],
})
})
})
import { parseExports } from '../src/uni_modules'
describe('uni_modules:exports', () => {
test('parseExports', () => {
expect(
parseExports('app', `@/uni_modules/uni-getbatteryinfo`, {
uni: 'getBatteryInfo',
})
).toEqual([
["import getBatteryInfo from '@/uni_modules/uni-getbatteryinfo'"],
['uni.getBatteryInfo = getBatteryInfo'],
])
expect(
parseExports('app', `@/uni_modules/uni-getbatteryinfo`, {
uni: ['getBatteryInfo'],
})
).toEqual([
["import { getBatteryInfo } from '@/uni_modules/uni-getbatteryinfo'"],
['uni.getBatteryInfo = getBatteryInfo'],
])
expect(
parseExports('app', `@/uni_modules/uni-location`, {
uni: ['openLocation', 'chooseLocation'],
})
).toEqual([
[
"import { openLocation, chooseLocation } from '@/uni_modules/uni-location'",
],
[
'uni.openLocation = openLocation',
'uni.chooseLocation = chooseLocation',
],
])
expect(
parseExports('app', `@/uni_modules/uni-capturescreen`, {
uni: {
onUserCaptureScreen: 'onCaptureScreen',
offUserCaptureScreen: 'offUserCaptureScreen',
},
})
).toEqual([
[
"import { onCaptureScreen as onUserCaptureScreen, offUserCaptureScreen } from '@/uni_modules/uni-capturescreen'",
],
[
'uni.onUserCaptureScreen = onUserCaptureScreen',
'uni.offUserCaptureScreen = offUserCaptureScreen',
],
])
})
test('parseExports with platform', () => {
expect(
parseExports('web', `@/uni_modules/uni-getbatteryinfo`, {
uni: 'getBatteryInfo1',
web: {
uni: 'getBatteryInfo',
},
})
).toEqual([
["import getBatteryInfo from '@/uni_modules/uni-getbatteryinfo'"],
['uni.getBatteryInfo = getBatteryInfo'],
])
expect(
parseExports('web', `@/uni_modules/uni-getbatteryinfo`, {
uni: 'getBatteryInfo1',
web: false,
})
).toEqual([[], []])
expect(
parseExports('web', `@/uni_modules/uni-location`, {
uni: ['openLocation'],
web: {
uni: ['chooseLocation'],
},
})
).toEqual([
["import { chooseLocation } from '@/uni_modules/uni-location'"],
['uni.chooseLocation = chooseLocation'],
])
})
})
...@@ -17,7 +17,6 @@ export const extensions = [ ...@@ -17,7 +17,6 @@ export const extensions = [
'.json', '.json',
].concat(EXTNAME_VUE) ].concat(EXTNAME_VUE)
export const UNI_MODULES_EXPORTS = '\0uni-modules-exports'
export const PAGES_JSON_JS = 'pages-json-js' export const PAGES_JSON_JS = 'pages-json-js'
export const MANIFEST_JSON_JS = 'manifest-json-js' export const MANIFEST_JSON_JS = 'manifest-json-js'
export const JSON_JS_MAP = { export const JSON_JS_MAP = {
......
...@@ -21,6 +21,8 @@ export * from './resolve' ...@@ -21,6 +21,8 @@ export * from './resolve'
export * from './scripts' export * from './scripts'
export * from './platform' export * from './platform'
export { parseUniExtApis } from './uni_modules'
export { M } from './messages' export { M } from './messages'
export * from './exports' export * from './exports'
......
...@@ -2,7 +2,7 @@ import path from 'path' ...@@ -2,7 +2,7 @@ import path from 'path'
import fs from 'fs-extra' import fs from 'fs-extra'
import { recursive } from 'merge' import { recursive } from 'merge'
type Define = string | string[] | Record<string, string> type Define = string | string[] | Record<string, string> | false
type Defines = { type Defines = {
[name: string]: Define [name: string]: Define
} }
...@@ -11,13 +11,13 @@ interface Exports { ...@@ -11,13 +11,13 @@ interface Exports {
[name: string]: Define | Defines | false [name: string]: Define | Defines | false
} }
export function genUniModulesExports() { export function parseUniExtApis() {
const uniModulesDir = path.resolve(process.env.UNI_INPUT_DIR, 'uni_modules') const uniModulesDir = path.resolve(process.env.UNI_INPUT_DIR, 'uni_modules')
if (!fs.existsSync(uniModulesDir)) { if (!fs.existsSync(uniModulesDir)) {
return '' return {}
} }
const importCodes: string[] = []
const assignCodes: string[] = [] const injects: Injects = {}
fs.readdirSync(uniModulesDir).forEach((uniModuleDir) => { fs.readdirSync(uniModulesDir).forEach((uniModuleDir) => {
// 必须以 uni- 开头 // 必须以 uni- 开头
if (!uniModuleDir.startsWith('uni-')) { if (!uniModuleDir.startsWith('uni-')) {
...@@ -27,60 +27,26 @@ export function genUniModulesExports() { ...@@ -27,60 +27,26 @@ export function genUniModulesExports() {
if (!fs.existsSync(pkgPath)) { if (!fs.existsSync(pkgPath)) {
return return
} }
const exports = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))?.uni_modules const exports = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))?.uni_modules?.[
?.exports as Exports | undefined 'uni-ext-api'
] as Exports | undefined
if (exports) { if (exports) {
const [exportsImportCodes, exportsAssignCodes] = parseExports( Object.assign(
process.env.UNI_PLATFORM === 'h5' ? 'web' : process.env.UNI_PLATFORM, injects,
`@/uni_modules/${uniModuleDir}`, parseInjects(
exports process.env.UNI_PLATFORM === 'h5' ? 'web' : process.env.UNI_PLATFORM,
`@/uni_modules/${uniModuleDir}`,
exports
)
) )
importCodes.push(...exportsImportCodes)
assignCodes.push(...exportsAssignCodes)
} }
}) })
if (!importCodes.length) { return injects
return ''
}
return `${importCodes.join('\n')}
${assignCodes.join('\n')}`
} }
export function parseExports( type Inject = string | string[]
platform: UniApp.PLATFORM, type Injects = {
source: string, [name: string]: string | string[] | false
exports: Exports = {}
): [string[], string[]] {
const rootDefines: Defines = {}
Object.keys(exports).forEach((name) => {
if (name.startsWith('uni')) {
rootDefines[name] = exports[name] as Define
}
})
const platformDefines = exports[platform] as false | Defines
// 该平台不支持
if (platformDefines === false) {
return [[], []]
}
return parseDefines(source, recursive(true, rootDefines, platformDefines))
}
export function parseDefines(
source: string,
defines: Defines = {}
): [string[], string[]] {
const importCodes: string[] = []
const assignCodes: string[] = []
Object.keys(defines).forEach((name) => {
const [defineImportCodes, defineAssignCodes] = parseDefine(
source,
name,
defines[name]
)
importCodes.push(...defineImportCodes)
assignCodes.push(...defineAssignCodes)
})
return [importCodes, assignCodes]
} }
/** /**
* uni:'getBatteryInfo' * uni:'getBatteryInfo'
...@@ -103,34 +69,52 @@ export function parseDefines( ...@@ -103,34 +69,52 @@ export function parseDefines(
* @param define * @param define
* @returns * @returns
*/ */
function parseDefine( export function parseInjects(
platform: UniApp.PLATFORM,
source: string,
exports: Exports = {}
) {
let rootDefines: Defines = {}
Object.keys(exports).forEach((name) => {
if (name.startsWith('uni')) {
rootDefines[name] = exports[name] as Inject
}
})
const platformDefines = exports[platform] as false | Defines
// 该平台不支持
if (platformDefines === false) {
return {}
}
if (platformDefines) {
rootDefines = recursive(true, rootDefines, platformDefines)
}
const injects: Injects = {}
for (const key in rootDefines) {
Object.assign(injects, parseInject(source, 'uni', rootDefines[key]))
}
return injects
}
export function parseInject(
source: string, source: string,
globalObject: string, globalObject: string,
define: Define define: Define
): [string[], string[]] { ) {
const importCodes: string[] = [] const injects: Injects = {}
const assignCodes: string[] = [] if (define === false) {
if (typeof define === 'string') { } else if (typeof define === 'string') {
importCodes.push(`import ${define} from '${source}'`) // {'uni.getBatteryInfo' : '@dcloudio/uni-getbatteryinfo'}
assignCodes.push(`${globalObject}.${define} = ${define}`) injects[globalObject + '.' + define] = source
} else if (Array.isArray(define)) { } else if (Array.isArray(define)) {
importCodes.push(`import { ${define.join(', ')} } from '${source}'`) // {'uni.getBatteryInfo' : ['@dcloudio/uni-getbatteryinfo','getBatteryInfo]}
define.forEach((d) => { define.forEach((d) => {
assignCodes.push(`${globalObject}.${d} = ${d}`) injects[globalObject + '.' + d] = [source, d]
}) })
} else { } else {
const keys = Object.keys(define) const keys = Object.keys(define)
const specifiers: string[] = []
keys.forEach((d) => { keys.forEach((d) => {
if (d !== define[d]) { injects[globalObject + '.' + d] = [source, define[d]]
specifiers.push(`${define[d]} as ${d}`)
} else {
specifiers.push(d)
}
assignCodes.push(`${globalObject}.${d} = ${d}`)
}) })
importCodes.push(`import { ${specifiers.join(', ')} } from '${source}'`)
} }
return [importCodes, assignCodes] return injects
} }
...@@ -5,7 +5,6 @@ export * from './mainJs' ...@@ -5,7 +5,6 @@ export * from './mainJs'
export * from './jsonJs' export * from './jsonJs'
export * from './console' export * from './console'
export * from './dynamicImportPolyfill' export * from './dynamicImportPolyfill'
export { uniModulesExportsPlugin } from './uniModules'
export { assetPlugin, getAssetHash } from './vitejs/plugins/asset' export { assetPlugin, getAssetHash } from './vitejs/plugins/asset'
export { export {
......
...@@ -23,7 +23,6 @@ import { ...@@ -23,7 +23,6 @@ import {
isJsFile, isJsFile,
isAssignmentExpression, isAssignmentExpression,
} from '../utils' } from '../utils'
import { UNI_MODULES_EXPORTS } from '../../constants'
interface Scope { interface Scope {
parent: Scope parent: Scope
...@@ -84,11 +83,9 @@ export function uniViteInjectPlugin( ...@@ -84,11 +83,9 @@ export function uniViteInjectPlugin(
// 确保在 commonjs 之后,否则会混合 es6 module 与 cjs 的代码,导致 commonjs 失效 // 确保在 commonjs 之后,否则会混合 es6 module 与 cjs 的代码,导致 commonjs 失效
enforce: 'post', enforce: 'post',
transform(code, id) { transform(code, id) {
// 硬编码支持了uni_modules_exports if (!filter(id)) return null
if (id !== UNI_MODULES_EXPORTS) { if (!isJsFile(id)) return null
if (!filter(id)) return null
if (!isJsFile(id)) return null
}
debugInjectTry(id) debugInjectTry(id)
if (code.search(firstpass) === -1) return null if (code.search(firstpass) === -1) return null
if (sep !== '/') id = id.split(sep).join('/') if (sep !== '/') id = id.split(sep).join('/')
......
import type { Plugin } from 'vite'
import { UNI_MODULES_EXPORTS } from '../../constants'
import { genUniModulesExports } from '../../uni_modules'
export function uniModulesExportsPlugin({
enable,
}: {
enable: boolean
}): Plugin {
return {
name: 'uni:modules:exports',
resolveId(id) {
if (id === UNI_MODULES_EXPORTS) {
return UNI_MODULES_EXPORTS
}
},
load(id) {
if (id !== UNI_MODULES_EXPORTS) {
return
}
// 未启用
if (!enable) {
return ''
}
return genUniModulesExports()
},
}
}
import path from 'path' import path from 'path'
import { import { EXTNAME_JS_RE, EXTNAME_VUE } from '../../constants'
EXTNAME_JS_RE,
EXTNAME_VUE,
UNI_MODULES_EXPORTS,
} from '../../constants'
export interface VueQuery { export interface VueQuery {
vue?: boolean vue?: boolean
...@@ -66,10 +62,6 @@ export const cleanUrl = (url: string) => ...@@ -66,10 +62,6 @@ export const cleanUrl = (url: string) =>
url.replace(hashRE, '').replace(queryRE, '') url.replace(hashRE, '').replace(queryRE, '')
export function isJsFile(id: string) { export function isJsFile(id: string) {
// inject 使用了isJsFile 判断。uni_modules_exports 中注入使用了 uni,在小程序平台,inject 需要注入 uni 对象
if (id === UNI_MODULES_EXPORTS) {
return true
}
const { filename, query } = parseVueRequest(id) const { filename, query } = parseVueRequest(id)
const isJs = EXTNAME_JS_RE.test(filename) const isJs = EXTNAME_JS_RE.test(filename)
if (isJs) { if (isJs) {
......
...@@ -2,7 +2,6 @@ import { ...@@ -2,7 +2,6 @@ import {
defineUniMainJsPlugin, defineUniMainJsPlugin,
isSsr, isSsr,
PAGES_JSON_JS, PAGES_JSON_JS,
UNI_MODULES_EXPORTS,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
import { isSSR, isSsrManifest } from '../utils' import { isSSR, isSsrManifest } from '../utils'
...@@ -27,7 +26,7 @@ export function uniMainJsPlugin() { ...@@ -27,7 +26,7 @@ export function uniMainJsPlugin() {
? createSSRServerApp(code) ? createSSRServerApp(code)
: createSSRClientApp(code) : createSSRClientApp(code)
} }
code = `import './${PAGES_JSON_JS}';import '${UNI_MODULES_EXPORTS}';${code}` code = `import './${PAGES_JSON_JS}';${code}`
return { return {
code, code,
map: this.getCombinedSourcemap(), map: this.getCombinedSourcemap(),
......
...@@ -6718,8 +6718,10 @@ const useSwiperNavigation = (rootRef, props2, state, onSwiperDotClick, swiperCon ...@@ -6718,8 +6718,10 @@ const useSwiperNavigation = (rootRef, props2, state, onSwiperDotClick, swiperCon
onMouseover: (event) => navigationHover(event, "over"), onMouseover: (event) => navigationHover(event, "over"),
onMouseout: (event) => navigationHover(event, "out") onMouseout: (event) => navigationHover(event, "out")
}; };
function navigationClick($event, type) { function navigationClick($event, type, disabled) {
$event.stopPropagation(); $event.stopPropagation();
if (disabled)
return;
const swiperItemLength = swiperContext.value.length; const swiperItemLength = swiperContext.value.length;
let _current = state.current; let _current = state.current;
switch (type) { switch (type) {
...@@ -6790,12 +6792,12 @@ const useSwiperNavigation = (rootRef, props2, state, onSwiperDotClick, swiperCon ...@@ -6790,12 +6792,12 @@ const useSwiperNavigation = (rootRef, props2, state, onSwiperDotClick, swiperCon
"class": ["uni-swiper-navigation uni-swiper-navigation-prev", shared.extend({ "class": ["uni-swiper-navigation uni-swiper-navigation-prev", shared.extend({
"uni-swiper-navigation-disabled": prevDisabled "uni-swiper-navigation-disabled": prevDisabled
}, navigationClass)], }, navigationClass)],
"onClick": (e2) => navigationClick(e2, "prev") "onClick": (e2) => navigationClick(e2, "prev", prevDisabled)
}, navigationAttr), [createNavigationSVG()], 16, ["onClick"]), vue.createVNode("div", vue.mergeProps({ }, navigationAttr), [createNavigationSVG()], 16, ["onClick"]), vue.createVNode("div", vue.mergeProps({
"class": ["uni-swiper-navigation uni-swiper-navigation-next", shared.extend({ "class": ["uni-swiper-navigation uni-swiper-navigation-next", shared.extend({
"uni-swiper-navigation-disabled": nextDisabled "uni-swiper-navigation-disabled": nextDisabled
}, navigationClass)], }, navigationClass)],
"onClick": (e2) => navigationClick(e2, "next") "onClick": (e2) => navigationClick(e2, "next", nextDisabled)
}, navigationAttr), [createNavigationSVG()], 16, ["onClick"])]); }, navigationAttr), [createNavigationSVG()], 16, ["onClick"])]);
} }
return null; return null;
......
...@@ -14207,8 +14207,10 @@ const useSwiperNavigation = (rootRef, props2, state2, onSwiperDotClick, swiperCo ...@@ -14207,8 +14207,10 @@ const useSwiperNavigation = (rootRef, props2, state2, onSwiperDotClick, swiperCo
onMouseover: (event) => navigationHover(event, "over"), onMouseover: (event) => navigationHover(event, "over"),
onMouseout: (event) => navigationHover(event, "out") onMouseout: (event) => navigationHover(event, "out")
}; };
function navigationClick($event, type) { function navigationClick($event, type, disabled) {
$event.stopPropagation(); $event.stopPropagation();
if (disabled)
return;
const swiperItemLength = swiperContext.value.length; const swiperItemLength = swiperContext.value.length;
let _current = state2.current; let _current = state2.current;
switch (type) { switch (type) {
...@@ -14280,12 +14282,12 @@ const useSwiperNavigation = (rootRef, props2, state2, onSwiperDotClick, swiperCo ...@@ -14280,12 +14282,12 @@ const useSwiperNavigation = (rootRef, props2, state2, onSwiperDotClick, swiperCo
"class": ["uni-swiper-navigation uni-swiper-navigation-prev", extend({ "class": ["uni-swiper-navigation uni-swiper-navigation-prev", extend({
"uni-swiper-navigation-disabled": prevDisabled "uni-swiper-navigation-disabled": prevDisabled
}, navigationClass)], }, navigationClass)],
"onClick": (e2) => navigationClick(e2, "prev") "onClick": (e2) => navigationClick(e2, "prev", prevDisabled)
}, navigationAttr), [createNavigationSVG()], 16, ["onClick"]), createVNode("div", mergeProps({ }, navigationAttr), [createNavigationSVG()], 16, ["onClick"]), createVNode("div", mergeProps({
"class": ["uni-swiper-navigation uni-swiper-navigation-next", extend({ "class": ["uni-swiper-navigation uni-swiper-navigation-next", extend({
"uni-swiper-navigation-disabled": nextDisabled "uni-swiper-navigation-disabled": nextDisabled
}, navigationClass)], }, navigationClass)],
"onClick": (e2) => navigationClick(e2, "next") "onClick": (e2) => navigationClick(e2, "next", nextDisabled)
}, navigationAttr), [createNavigationSVG()], 16, ["onClick"])]); }, navigationAttr), [createNavigationSVG()], 16, ["onClick"])]);
} }
return null; return null;
......
...@@ -1175,13 +1175,17 @@ function createIntersectionObserver(component, options) { ...@@ -1175,13 +1175,17 @@ function createIntersectionObserver(component, options) {
delete options.observeAll; delete options.observeAll;
} }
return swan.createIntersectionObserver(component, options); return swan.createIntersectionObserver(component, options);
}
function createVideoContext(videoId) {
return swan.createVideoContext(videoId);
} }
var shims = /*#__PURE__*/Object.freeze({ var shims = /*#__PURE__*/Object.freeze({
__proto__: null, __proto__: null,
getProvider: getProvider, getProvider: getProvider,
requestPayment: requestPayment, requestPayment: requestPayment,
createIntersectionObserver: createIntersectionObserver createIntersectionObserver: createIntersectionObserver,
createVideoContext: createVideoContext
}); });
function createTodoMethod(contextName, methodName) { function createTodoMethod(contextName, methodName) {
......
...@@ -3,7 +3,6 @@ import { ...@@ -3,7 +3,6 @@ import {
PAGES_JSON_JS, PAGES_JSON_JS,
parseProgram, parseProgram,
transformDynamicImports, transformDynamicImports,
UNI_MODULES_EXPORTS,
updateMiniProgramGlobalComponents, updateMiniProgramGlobalComponents,
withSourcemap, withSourcemap,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
...@@ -47,7 +46,7 @@ export function uniMainJsPlugin( ...@@ -47,7 +46,7 @@ export function uniMainJsPlugin(
}) })
return { return {
code: code:
`import '\0plugin-vue:export-helper';import 'uni-mp-runtime';import './${PAGES_JSON_JS}';import '${UNI_MODULES_EXPORTS}';` + `import '\0plugin-vue:export-helper';import 'uni-mp-runtime';import './${PAGES_JSON_JS}';` +
code, code,
map, map,
} }
......
...@@ -13,9 +13,9 @@ import { ...@@ -13,9 +13,9 @@ import {
emptyDir, emptyDir,
initModuleAlias, initModuleAlias,
initPreContext, initPreContext,
parsePagesJsonOnce, parseUniExtApis,
resolveSourceMapPath, resolveSourceMapPath,
uniModulesExportsPlugin, uniViteInjectPlugin,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
import { createConfig } from './config' import { createConfig } from './config'
...@@ -92,15 +92,8 @@ export default function uniPlugin( ...@@ -92,15 +92,8 @@ export default function uniPlugin(
initPreContext(options.platform, process.env.UNI_CUSTOM_CONTEXT) initPreContext(options.platform, process.env.UNI_CUSTOM_CONTEXT)
const pagesJson = parsePagesJsonOnce(
process.env.UNI_INPUT_DIR,
process.env.UNI_PLATFORM
)
const plugins: Plugin[] = [ const plugins: Plugin[] = [
uniModulesExportsPlugin({ uniViteInjectPlugin('uni:ext-api-inject', parseUniExtApis()),
enable: pagesJson.uni_modules?.exports === false ? false : true,
}),
] ]
// 仅限 h5 // 仅限 h5
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册