@empjs/share 3.13.1 → 3.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/plugins/rspack/index.ts","../src/helper/index.ts","../src/helper/config.ts","../src/helper/rspack.ts","../src/plugins/rspack/plugin.ts","../src/plugins/rspack/utils.ts","../src/plugins/rspack/share.ts","../src/framework/react/config.ts","../src/framework/vue/config.ts"],"sourcesContent":["import type {GlobalStore} from '@empjs/cli'\nimport {EmpShare} from './share'\nimport type {EMPPluginShareType} from './types'\nexport type {EMPPluginShareType}\n//\nexport * from 'src/framework/react/config'\nexport * from 'src/framework/vue/config'\nexport * from './types'\n//\nexport const pluginRspackEmpShare = (o: EMPPluginShareType = {}) => {\n return {\n name: '@empjs/share',\n async rsConfig(store: GlobalStore) {\n //\n if (o.manifest === true) {\n o.manifest = {\n fileName: 'emp.json',\n }\n } else if (typeof o.manifest === 'object') {\n o.manifest = store.deepAssign({fileName: 'emp.json'}, o.manifest)\n }\n const empShare = new EmpShare(o, store)\n empShare.setup()\n },\n }\n}\nexport default pluginRspackEmpShare\n","export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n","// export {ModuleFederationPlugin} from '@module-federation/rspack'\nexport {ModuleFederationPlugin} from '@empjs/module-federation-rspack'\n","import {Compiler} from '@empjs/cli'\nimport {importJsVm} from 'src/helper'\nimport type {EMPSHARERuntimeOptions} from './types'\n\nconst getShareRuntimeEntry = url => {\n const content = [`import '${url}'`].join('\\n')\n return importJsVm(content)\n}\n// 当没有设置 runtimeLib 时候需要内置\nexport class EmpShareRemoteLibPlugin {\n options: EMPSHARERuntimeOptions\n constructor(op: EMPSHARERuntimeOptions) {\n this.options = op\n }\n apply(compiler: Compiler) {\n const {webpack} = compiler\n const entry = getShareRuntimeEntry('@empjs/share/library')\n new webpack.EntryPlugin(compiler.context, entry, {\n name: undefined,\n }).apply(compiler)\n }\n}\n","import type {EMPSHARERuntimeOptions} from './types'\nexport function getRuntimeLib(host: EMPSHARERuntimeOptions['frameworkLib'], mode: string, entry = 'runtime') {\n if (typeof host === 'string') {\n if (entry === 'runtime') {\n return `${host}/runtime${mode === 'development' ? '.development' : ''}.umd.js`\n } else {\n return `${host}/${entry}.${mode}.umd.js`\n }\n } else if (typeof host === 'object') {\n if (mode === 'development') return host.dev\n else return host.prod\n }\n return ''\n}\n","import type {GlobalStore} from '@empjs/cli'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport {ModuleFederationPlugin} from 'src/helper/rspack'\nimport {EmpShareRemoteLibPlugin} from './plugin'\nimport type {\n EMPPluginShareType,\n ExternalsItemType,\n frameworkOptions,\n ModuleFederationPluginOptions,\n runtimeLibType,\n} from './types'\nimport {getRuntimeLib} from './utils'\n\nconst exp = /^([0-9a-zA-Z_\\s]+)@(.*)/\nexport class EmpShare {\n private op: EMPPluginShareType\n private store: GlobalStore\n /**\n * 注入资源\n */\n private injectHtml: any[] = []\n /**\n * 兼容 shareLib\n */\n private externalsLib: ExternalsItemType[] = []\n constructor(op: EMPPluginShareType, store: GlobalStore) {\n this.op = op || {}\n this.store = store\n }\n setup() {\n this.resetRuntime()\n this.resetFramework()\n this.setMfName() //设置 mfName 默认为 uniqueName\n this.setMF() // 设置 MF 配置\n this.injectGlobalVal() // 插入全局变量 方便emp外的项目调用\n this.injectFramework() // 插入ui框架库\n this.setShareLib() //兼容 emp Sharelib的共享模型设置\n this.setRuntimeLib() // 设置 MF SDK\n this.injectToHtml() //触发插入动作\n this.setExternal() // 设置 external 降低包体\n }\n private injectToHtml() {\n const {store, injectHtml} = this\n if (injectHtml.length > 0) {\n store.injectTags(injectHtml, 'EMPShare')\n }\n }\n private injectFramework() {\n if (this.fk && this.fk.libs.length > 0) {\n return this.injectFkLibs(this.fk.libs)\n }\n if (!this.op.empRuntime || !this.fk.lib) return\n const {store, injectHtml} = this\n if (this.fk.lib) {\n const url = getRuntimeLib(this.fk.lib, store.mode, this.fk.entry)\n injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n }\n }\n private injectFkLibs(libs: string[]) {\n libs.map(url => {\n if (url.endsWith('.css')) {\n return this.injectHtml.push({\n attributes: {\n href: url,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n this.injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n })\n }\n private injectGlobalVal() {\n if (!this.op.empRuntime) return\n const {empRuntime} = this.op\n const {injectHtml} = this\n const frameworkGlobal = this.fk.global || (empRuntime.shareLib ? 'window' : '')\n const injectGlobalValToHtml = empRuntime.injectGlobalValToHtml === false || !this.rt.lib ? false : true\n // 插入全局引用变量 让 empRuntime 可以提前实例化 不需要在页面重复实例化\n if (injectGlobalValToHtml) {\n const injectData: any = {frameworkLib: frameworkGlobal, runtimeLib: this.rt.global}\n if (this.fk.name && this.fk.name !== 'none') injectData.framework = this.fk.name\n injectHtml.push({\n // type: 'js',\n tagName: 'script',\n innerHTML: `EMPShareGlobalVal=${JSON.stringify(injectData)}`,\n })\n }\n }\n public fk!: Required<frameworkOptions>\n private resetFramework() {\n if (!this.op.empRuntime) return\n const {framework, frameworkGlobal, frameworkLib} = this.op.empRuntime\n //\n this.fk = {\n name: 'none',\n version: 0,\n entry: '',\n global: frameworkGlobal || '',\n lib: frameworkLib || '',\n libs: [],\n }\n //\n if (typeof framework === 'string') {\n this.fk.name = framework as any\n }\n // TODO 通用 CDN 的适配方案\n else if (typeof framework === 'object' && Object.keys(framework).length > 0) {\n // 默认 框架名 为入口\n framework.entry = framework.entry ? framework.entry : framework.name\n this.fk = deepAssign(this.fk, framework)\n }\n }\n public rt!: Required<runtimeLibType>\n private resetRuntime() {\n const {empRuntime} = this.op\n if (!empRuntime) return\n const global = empRuntime.runtimeGlobal || shareGlobalName\n const lib = empRuntime.runtimeLib ? empRuntime.runtimeLib : empRuntime.runtime?.lib ? empRuntime.runtime.lib : ''\n this.rt = {\n lib,\n global,\n }\n }\n private setExternal() {\n if (!this.op.empRuntime) return\n const {store, externalsLib} = this\n const {empRuntime} = this.op\n const {shareLib} = empRuntime\n //\n const externalRuntime = this.rt.lib\n ? {\n '@module-federation/runtime': `MFRuntime`,\n '@module-federation/sdk': `MFSDK`,\n }\n : {}\n const externals = {}\n for (const [key, value] of Object.entries(externalRuntime)) {\n externals[key] = `${this.rt.global}.${value}`\n }\n /**\n * TODO\n * 框架相关内容需要移除 share 由外部简化配置实现\n */\n if (this.fk.name === 'react' && !shareLib && this.fk.global) {\n const version = this.fk.version\n const externalReact = {\n react: `React`,\n 'react-dom': `ReactDOM`,\n }\n if (this.fk.entry === 'reactRouter') {\n externalReact['react-router-dom'] = 'ReactRouterDOM'\n }\n for (const [key, value] of Object.entries(externalReact)) {\n externals[key] = `${this.fk.global}.${value}`\n }\n if ([17, 18, 19].includes(version)) {\n externals['react-dom/client'] = this.fk.global\n externals['react/jsx-runtime'] = this.fk.global\n externals['react/jsx-dev-runtime'] = this.fk.global\n }\n }\n if (shareLib) {\n externalsLib.map(v => {\n if (v.type === 'js' && v.module && v.global) {\n externals[v.module] = `${this.fk.global}.${v.global}`\n }\n })\n }\n if (empRuntime.setExternals) empRuntime.setExternals(externals, this.fk.global, this.rt.global)\n //\n // console.log('externals in plugin', externals)\n store.chain.merge({externals})\n }\n private setRuntimeLib() {\n if (!this.op.empRuntime) return\n\n const {shareLib} = this.op.empRuntime\n const {store, injectHtml} = this\n const {empRuntime} = this.op\n if (!this.rt.lib) {\n // 内置 this.rt.lib\n store.chain.plugin('plugin-emp-share-framework').use(EmpShareRemoteLibPlugin, [empRuntime])\n }\n // 统一封装到 frameworkLib\n else if (this.rt.lib === 'useFrameworkLib' && !shareLib) {\n } else {\n // 插入 runtime\n injectHtml.push({tagName: 'script', pos: 'head', attributes: {src: this.rt.lib}})\n }\n }\n private setMfName() {\n if (this.op.name) {\n this.op.name = this.store.encodeVarName(this.op.name)\n if (this.op.name !== this.store.empConfig.output.uniqueName) {\n this.store.chain.output.set('uniqueName', this.op.name)\n }\n } else {\n this.op.name = this.store.empConfig.output.uniqueName\n }\n }\n private setMF() {\n const o = this.op\n const {store} = this\n if (o.name) {\n const op = store.deepAssign<ModuleFederationPluginOptions & {empRuntime: any}>(\n {\n filename: 'emp.js',\n // manifest: false,\n // dts: false,\n // dev: {\n // disableDynamicRemoteTypeHints: true,\n // },\n },\n o,\n )\n //\n // if (o.dev === false) op.dev = false\n //\n if (op.empRuntime) {\n delete op.empRuntime\n }\n // console.log('op', op)\n store.chain.plugin('plugin-emp-share').use(ModuleFederationPlugin, [op])\n }\n }\n private setShareLib() {\n if (!this.op.empRuntime) return\n const {shareLib} = this.op.empRuntime\n const {externalsLib, injectHtml} = this\n if (shareLib && typeof shareLib === 'object') {\n for (const [k, v] of Object.entries(shareLib)) {\n let externalsItem: ExternalsItemType = {}\n externalsItem.module = k\n //增加下划线 支持lodash 等特殊符号的问题 如 _@http\n\n if (typeof v === 'string') {\n const cb: any = v.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n } else {\n externalsItem.global = ''\n externalsItem.entry = v\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n } else if (Array.isArray(v)) {\n v.map(vo => {\n if (!vo) return\n const isCSS = vo.split('?')[0].endsWith('.css')\n if (isCSS) {\n externalsItem.entry = vo\n externalsItem.type = 'css'\n } else {\n const cb: any = vo.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n } else {\n externalsItem.global = ''\n externalsItem.entry = vo\n externalsItem.type = 'js'\n }\n }\n externalsLib.push(externalsItem)\n externalsItem = {}\n })\n } else if (typeof v === 'object' && v.entry) {\n externalsItem.entry = v.entry\n externalsItem.global = v.global\n externalsItem.type = v.type\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n }\n // console.log(externalsLib)\n externalsLib.map(v => {\n if (v.type === 'js') {\n injectHtml.push({\n attributes: {\n src: v.entry,\n },\n tagName: 'script',\n })\n } else if (v.type === 'css') {\n injectHtml.push({\n attributes: {\n href: v.entry,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n })\n }\n }\n}\n","export const externalReact = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n react: `${globalVal}.React`,\n 'react-dom': `${globalVal}.ReactDOM`,\n 'react-dom/client': globalVal,\n 'react/jsx-runtime': globalVal,\n 'react/jsx-dev-runtime': globalVal,\n 'react-router-dom': `${globalVal}.ReactRouterDOM`,\n })\n return o\n}\n","export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n"],"mappings":"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","names":["rspack_exports","__export","rspack_default","externalReact","externalVue","pluginRspackEmpShare","__toCommonJS","importJsVm","content","deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","import_module_federation_rspack","getShareRuntimeEntry","url","content","importJsVm","EmpShareRemoteLibPlugin","op","compiler","webpack","entry","getRuntimeLib","host","mode","entry","exp","EmpShare","op","store","injectHtml","url","getRuntimeLib","libs","empRuntime","frameworkGlobal","injectData","framework","frameworkLib","deepAssign","global","shareGlobalName","lib","externalsLib","shareLib","externalRuntime","externals","key","value","version","externalReact","v","EmpShareRemoteLibPlugin","o","k","externalsItem","cb","vo","externalReact","o","globalVal","externalVue","o","globalVal","pluginRspackEmpShare","o","store","EmpShare","rspack_default"]}
1
+ {"version":3,"sources":["../src/plugins/rspack/index.ts","../src/helper/index.ts","../src/helper/config.ts","../src/helper/rspack.ts","../src/plugins/rspack/plugin.ts","../src/plugins/rspack/utils.ts","../src/plugins/rspack/share.ts","../src/framework/react/config.ts","../src/framework/vue/config.ts"],"sourcesContent":["import type {GlobalStore} from '@empjs/cli'\nimport {EmpShare} from './share'\nimport type {EMPPluginShareType} from './types'\nexport type {EMPPluginShareType}\n//\nexport * from 'src/framework/react/config'\nexport * from 'src/framework/vue/config'\nexport * from './types'\n//\nexport const pluginRspackEmpShare = (o: EMPPluginShareType = {}) => {\n return {\n name: '@empjs/share',\n async rsConfig(store: GlobalStore) {\n //\n if (o.manifest === true) {\n o.manifest = {\n fileName: 'emp.json',\n }\n } else if (typeof o.manifest === 'object') {\n o.manifest = store.deepAssign({fileName: 'emp.json'}, o.manifest)\n }\n const empShare = new EmpShare(o, store)\n empShare.setup()\n },\n }\n}\nexport default pluginRspackEmpShare\n","export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n","// export {ModuleFederationPlugin} from '@module-federation/rspack'\nexport {ModuleFederationPlugin} from '@empjs/module-federation-rspack'\n","import {Compiler} from '@empjs/cli'\nimport {importJsVm} from 'src/helper'\nimport type {EMPSHARERuntimeOptions} from './types'\n\nconst getShareRuntimeEntry = url => {\n const content = [`import '${url}'`].join('\\n')\n return importJsVm(content)\n}\n// 当没有设置 runtimeLib 时候需要内置\nexport class EmpShareRemoteLibPlugin {\n options: EMPSHARERuntimeOptions\n constructor(op: EMPSHARERuntimeOptions) {\n this.options = op\n }\n apply(compiler: Compiler) {\n const {webpack} = compiler\n const entry = getShareRuntimeEntry('@empjs/share/library')\n new webpack.EntryPlugin(compiler.context, entry, {\n name: undefined,\n }).apply(compiler)\n }\n}\n","import type {EMPSHARERuntimeOptions} from './types'\nexport function getRuntimeLib(host: EMPSHARERuntimeOptions['frameworkLib'], mode: string, entry = 'runtime') {\n if (typeof host === 'string') {\n if (entry === 'runtime') {\n return `${host}/runtime${mode === 'development' ? '.development' : ''}.umd.js`\n } else {\n return `${host}/${entry}.${mode}.umd.js`\n }\n } else if (typeof host === 'object') {\n if (mode === 'development') return host.dev\n else return host.prod\n }\n return ''\n}\n","import type {GlobalStore} from '@empjs/cli'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport {ModuleFederationPlugin} from 'src/helper/rspack'\nimport {EmpShareRemoteLibPlugin} from './plugin'\nimport type {\n EMPPluginShareType,\n ExternalsItemType,\n frameworkOptions,\n ModuleFederationPluginOptions,\n runtimeLibType,\n} from './types'\nimport {getRuntimeLib} from './utils'\n\nconst exp = /^([0-9a-zA-Z_\\s]+)@(.*)/\nexport class EmpShare {\n private op: EMPPluginShareType\n private store: GlobalStore\n /**\n * 注入资源\n */\n private injectHtml: any[] = []\n /**\n * 兼容 shareLib\n */\n private externalsLib: ExternalsItemType[] = []\n constructor(op: EMPPluginShareType, store: GlobalStore) {\n this.op = op || {}\n this.store = store\n }\n setup() {\n this.resetRuntime()\n this.resetFramework()\n this.setMfName() //设置 mfName 默认为 uniqueName\n this.setMF() // 设置 MF 配置\n this.injectGlobalVal() // 插入全局变量 方便emp外的项目调用\n this.injectFramework() // 插入ui框架库\n this.setShareLib() //兼容 emp Sharelib的共享模型设置\n this.setRuntimeLib() // 设置 MF SDK\n this.injectToHtml() //触发插入动作\n this.setExternal() // 设置 external 降低包体\n }\n private injectToHtml() {\n const {store, injectHtml} = this\n if (injectHtml.length > 0) {\n store.injectTags(injectHtml, 'EMPShare')\n }\n }\n private injectFramework() {\n if (this.fk && this.fk.libs.length > 0) {\n return this.injectFkLibs(this.fk.libs)\n }\n if (!this.op.empRuntime || !this.fk.lib) return\n const {store, injectHtml} = this\n if (this.fk.lib) {\n const url = getRuntimeLib(this.fk.lib, store.mode, this.fk.entry)\n injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n }\n }\n private injectFkLibs(libs: string[]) {\n libs.map(url => {\n if (url.endsWith('.css')) {\n return this.injectHtml.push({\n attributes: {\n href: url,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n this.injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n })\n }\n private injectGlobalVal() {\n if (!this.op.empRuntime) return\n const {empRuntime} = this.op\n const {injectHtml} = this\n const frameworkGlobal = this.fk.global || (empRuntime.shareLib ? 'window' : '')\n const injectGlobalValToHtml = empRuntime.injectGlobalValToHtml === false || !this.rt.lib ? false : true\n // 插入全局引用变量 让 empRuntime 可以提前实例化 不需要在页面重复实例化\n if (injectGlobalValToHtml) {\n const injectData: any = {frameworkLib: frameworkGlobal, runtimeLib: this.rt.global}\n if (this.fk.name && this.fk.name !== 'none') injectData.framework = this.fk.name\n injectHtml.push({\n // type: 'js',\n tagName: 'script',\n innerHTML: `EMPShareGlobalVal=${JSON.stringify(injectData)}`,\n })\n }\n }\n public fk!: Required<frameworkOptions>\n private resetFramework() {\n if (!this.op.empRuntime) return\n const {framework, frameworkGlobal, frameworkLib} = this.op.empRuntime\n //\n this.fk = {\n name: 'none',\n version: 0,\n entry: '',\n global: frameworkGlobal || '',\n lib: frameworkLib || '',\n libs: [],\n }\n //\n if (typeof framework === 'string') {\n this.fk.name = framework as any\n }\n // TODO 通用 CDN 的适配方案\n else if (typeof framework === 'object' && Object.keys(framework).length > 0) {\n // 默认 框架名 为入口\n framework.entry = framework.entry ? framework.entry : framework.name\n this.fk = deepAssign(this.fk, framework)\n }\n }\n public rt!: Required<runtimeLibType>\n private resetRuntime() {\n const {empRuntime} = this.op\n if (!empRuntime) return\n const global = empRuntime.runtimeGlobal || shareGlobalName\n const lib = empRuntime.runtimeLib ? empRuntime.runtimeLib : empRuntime.runtime?.lib ? empRuntime.runtime.lib : ''\n this.rt = {\n lib,\n global,\n }\n }\n private setExternal() {\n if (!this.op.empRuntime) return\n const {store, externalsLib} = this\n const {empRuntime} = this.op\n const {shareLib} = empRuntime\n //\n const externalRuntime = this.rt.lib\n ? {\n '@module-federation/runtime': `MFRuntime`,\n '@module-federation/sdk': `MFSDK`,\n }\n : {}\n const externals = {}\n for (const [key, value] of Object.entries(externalRuntime)) {\n externals[key] = `${this.rt.global}.${value}`\n }\n /**\n * TODO\n * 框架相关内容需要移除 share 由外部简化配置实现\n */\n if (this.fk.name === 'react' && !shareLib && this.fk.global) {\n const version = this.fk.version\n const externalReact = {\n react: `React`,\n 'react-dom': `ReactDOM`,\n }\n if (this.fk.entry === 'reactRouter') {\n externalReact['react-router-dom'] = 'ReactRouterDOM'\n }\n for (const [key, value] of Object.entries(externalReact)) {\n externals[key] = `${this.fk.global}.${value}`\n }\n if ([17, 18, 19].includes(version)) {\n externals['react-dom/client'] = this.fk.global\n externals['react/jsx-runtime'] = this.fk.global\n externals['react/jsx-dev-runtime'] = this.fk.global\n }\n }\n if (shareLib) {\n externalsLib.map(v => {\n if (v.type === 'js' && v.module && v.global) {\n externals[v.module] = `${this.fk.global}.${v.global}`\n }\n })\n }\n if (empRuntime.setExternals) empRuntime.setExternals(externals, this.fk.global, this.rt.global)\n //\n // console.log('externals in plugin', externals)\n store.chain.merge({externals})\n }\n private setRuntimeLib() {\n if (!this.op.empRuntime) return\n\n const {shareLib} = this.op.empRuntime\n const {store, injectHtml} = this\n const {empRuntime} = this.op\n if (!this.rt.lib) {\n // 内置 this.rt.lib\n store.chain.plugin('plugin-emp-share-framework').use(EmpShareRemoteLibPlugin, [empRuntime])\n }\n // 统一封装到 frameworkLib\n else if (this.rt.lib === 'useFrameworkLib' && !shareLib) {\n } else {\n // 插入 runtime\n injectHtml.push({tagName: 'script', pos: 'head', attributes: {src: this.rt.lib}})\n }\n }\n private setMfName() {\n if (this.op.name) {\n this.op.name = this.store.encodeVarName(this.op.name)\n if (this.op.name !== this.store.empConfig.output.uniqueName) {\n this.store.chain.output.set('uniqueName', this.op.name)\n }\n } else {\n this.op.name = this.store.empConfig.output.uniqueName\n }\n }\n private setMF() {\n const o = this.op\n const {store} = this\n if (o.name) {\n const op = store.deepAssign<ModuleFederationPluginOptions & {empRuntime: any}>(\n {\n filename: 'emp.js',\n // manifest: false,\n // dts: false,\n // dev: {\n // disableDynamicRemoteTypeHints: true,\n // },\n },\n o,\n )\n //\n // if (o.dev === false) op.dev = false\n //\n if (op.empRuntime) {\n delete op.empRuntime\n }\n // console.log('op', op)\n store.chain.plugin('plugin-emp-share').use(ModuleFederationPlugin, [op])\n }\n }\n private setShareLib() {\n if (!this.op.empRuntime) return\n const {shareLib} = this.op.empRuntime\n const {externalsLib, injectHtml} = this\n if (shareLib && typeof shareLib === 'object') {\n for (const [k, v] of Object.entries(shareLib)) {\n let externalsItem: ExternalsItemType = {}\n externalsItem.module = k\n //增加下划线 支持lodash 等特殊符号的问题 如 _@http\n\n if (typeof v === 'string') {\n const cb: any = v.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n } else {\n externalsItem.global = ''\n externalsItem.entry = v\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n } else if (Array.isArray(v)) {\n v.map(vo => {\n if (!vo) return\n const isCSS = vo.split('?')[0].endsWith('.css')\n if (isCSS) {\n externalsItem.entry = vo\n externalsItem.type = 'css'\n } else {\n const cb: any = vo.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n } else {\n externalsItem.global = ''\n externalsItem.entry = vo\n externalsItem.type = 'js'\n }\n }\n externalsLib.push(externalsItem)\n externalsItem = {}\n })\n } else if (typeof v === 'object' && v.entry) {\n externalsItem.entry = v.entry\n externalsItem.global = v.global\n externalsItem.type = v.type\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n }\n // console.log(externalsLib)\n externalsLib.map(v => {\n if (v.type === 'js') {\n injectHtml.push({\n attributes: {\n src: v.entry,\n },\n tagName: 'script',\n })\n } else if (v.type === 'css') {\n injectHtml.push({\n attributes: {\n href: v.entry,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n })\n }\n }\n}\n","export const externalReact = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n react: `${globalVal}.React`,\n 'react-dom': `${globalVal}.ReactDOM`,\n 'react-dom/client': globalVal,\n 'react/jsx-runtime': globalVal,\n 'react/jsx-dev-runtime': globalVal,\n 'react-router-dom': `${globalVal}.ReactRouterDOM`,\n })\n return o\n}\n","export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n"],"mappings":"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","names":["rspack_exports","__export","rspack_default","externalReact","externalVue","pluginRspackEmpShare","__toCommonJS","importJsVm","content","deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","import_module_federation_rspack","getShareRuntimeEntry","url","content","importJsVm","EmpShareRemoteLibPlugin","op","__publicField","compiler","webpack","entry","getRuntimeLib","host","mode","entry","exp","EmpShare","op","store","__publicField","injectHtml","url","getRuntimeLib","libs","empRuntime","frameworkGlobal","injectData","framework","frameworkLib","deepAssign","_a","global","shareGlobalName","lib","externalsLib","shareLib","externalRuntime","externals","key","value","version","externalReact","v","EmpShareRemoteLibPlugin","o","k","externalsItem","cb","vo","externalReact","o","globalVal","externalVue","o","globalVal","pluginRspackEmpShare","o","store","__async","EmpShare","rspack_default"]}
package/dist/rspack.js CHANGED
@@ -1,3 +1,3 @@
1
- var f=s=>`data:text/javascript,${s}`;function u(s,...e){for(let t of e)for(let r in t){let a=t[r],n=s[r];if(Object(a)==a&&Object(n)===n){s[r]=u(n,a);continue}s[r]=t[r]}return s}var k=!1,x=k?console.log.bind(console,"[EMP Share]"):()=>{};var h="EMP_SHARE_RUNTIME";import{ModuleFederationPlugin as b}from"@empjs/module-federation-rspack";var R=s=>{let e=[`import '${s}'`].join(`
2
- `);return f(e)},l=class{options;constructor(e){this.options=e}apply(e){let{webpack:t}=e,r=R("@empjs/share/library");new t.EntryPlugin(e.context,r,{name:void 0}).apply(e)}};function y(s,e,t="runtime"){return typeof s=="string"?t==="runtime"?`${s}/runtime${e==="development"?".development":""}.umd.js`:`${s}/${t}.${e}.umd.js`:typeof s=="object"?e==="development"?s.dev:s.prod:""}var g=/^([0-9a-zA-Z_\s]+)@(.*)/,c=class{op;store;injectHtml=[];externalsLib=[];constructor(e,t){this.op=e||{},this.store=t}setup(){this.resetRuntime(),this.resetFramework(),this.setMfName(),this.setMF(),this.injectGlobalVal(),this.injectFramework(),this.setShareLib(),this.setRuntimeLib(),this.injectToHtml(),this.setExternal()}injectToHtml(){let{store:e,injectHtml:t}=this;t.length>0&&e.injectTags(t,"EMPShare")}injectFramework(){if(this.fk&&this.fk.libs.length>0)return this.injectFkLibs(this.fk.libs);if(!this.op.empRuntime||!this.fk.lib)return;let{store:e,injectHtml:t}=this;if(this.fk.lib){let r=y(this.fk.lib,e.mode,this.fk.entry);t.push({attributes:{src:r},tagName:"script"})}}injectFkLibs(e){e.map(t=>{if(t.endsWith(".css"))return this.injectHtml.push({attributes:{href:t,rel:"stylesheet"},tagName:"link"});this.injectHtml.push({attributes:{src:t},tagName:"script"})})}injectGlobalVal(){if(!this.op.empRuntime)return;let{empRuntime:e}=this.op,{injectHtml:t}=this,r=this.fk.global||(e.shareLib?"window":"");if(!(e.injectGlobalValToHtml===!1||!this.rt.lib)){let n={frameworkLib:r,runtimeLib:this.rt.global};this.fk.name&&this.fk.name!=="none"&&(n.framework=this.fk.name),t.push({tagName:"script",innerHTML:`EMPShareGlobalVal=${JSON.stringify(n)}`})}}fk;resetFramework(){if(!this.op.empRuntime)return;let{framework:e,frameworkGlobal:t,frameworkLib:r}=this.op.empRuntime;this.fk={name:"none",version:0,entry:"",global:t||"",lib:r||"",libs:[]},typeof e=="string"?this.fk.name=e:typeof e=="object"&&Object.keys(e).length>0&&(e.entry=e.entry?e.entry:e.name,this.fk=u(this.fk,e))}rt;resetRuntime(){let{empRuntime:e}=this.op;if(!e)return;let t=e.runtimeGlobal||h,r=e.runtimeLib?e.runtimeLib:e.runtime?.lib?e.runtime.lib:"";this.rt={lib:r,global:t}}setExternal(){if(!this.op.empRuntime)return;let{store:e,externalsLib:t}=this,{empRuntime:r}=this.op,{shareLib:a}=r,n=this.rt.lib?{"@module-federation/runtime":"MFRuntime","@module-federation/sdk":"MFSDK"}:{},i={};for(let[o,m]of Object.entries(n))i[o]=`${this.rt.global}.${m}`;if(this.fk.name==="react"&&!a&&this.fk.global){let o=this.fk.version,m={react:"React","react-dom":"ReactDOM"};this.fk.entry==="reactRouter"&&(m["react-router-dom"]="ReactRouterDOM");for(let[p,j]of Object.entries(m))i[p]=`${this.fk.global}.${j}`;[17,18,19].includes(o)&&(i["react-dom/client"]=this.fk.global,i["react/jsx-runtime"]=this.fk.global,i["react/jsx-dev-runtime"]=this.fk.global)}a&&t.map(o=>{o.type==="js"&&o.module&&o.global&&(i[o.module]=`${this.fk.global}.${o.global}`)}),r.setExternals&&r.setExternals(i,this.fk.global,this.rt.global),e.chain.merge({externals:i})}setRuntimeLib(){if(!this.op.empRuntime)return;let{shareLib:e}=this.op.empRuntime,{store:t,injectHtml:r}=this,{empRuntime:a}=this.op;this.rt.lib?this.rt.lib==="useFrameworkLib"&&!e||r.push({tagName:"script",pos:"head",attributes:{src:this.rt.lib}}):t.chain.plugin("plugin-emp-share-framework").use(l,[a])}setMfName(){this.op.name?(this.op.name=this.store.encodeVarName(this.op.name),this.op.name!==this.store.empConfig.output.uniqueName&&this.store.chain.output.set("uniqueName",this.op.name)):this.op.name=this.store.empConfig.output.uniqueName}setMF(){let e=this.op,{store:t}=this;if(e.name){let r=t.deepAssign({filename:"emp.js"},e);r.empRuntime&&delete r.empRuntime,t.chain.plugin("plugin-emp-share").use(b,[r])}}setShareLib(){if(!this.op.empRuntime)return;let{shareLib:e}=this.op.empRuntime,{externalsLib:t,injectHtml:r}=this;if(e&&typeof e=="object"){for(let[a,n]of Object.entries(e)){let i={};if(i.module=a,typeof n=="string"){let o=n.match(g)||[];o.length>0?(i.global=o[1],i.entry=o[2],i.type="js",t.push(i),i={}):(i.global="",i.entry=n,i.type="js",t.push(i),i={})}else Array.isArray(n)?n.map(o=>{if(!o)return;if(o.split("?")[0].endsWith(".css"))i.entry=o,i.type="css";else{let p=o.match(g)||[];p.length>0?(i.global=p[1],i.entry=p[2],i.type="js"):(i.global="",i.entry=o,i.type="js")}t.push(i),i={}}):typeof n=="object"&&n.entry&&(i.entry=n.entry,i.global=n.global,i.type=n.type,t.push(i),i={})}t.map(a=>{a.type==="js"?r.push({attributes:{src:a.entry},tagName:"script"}):a.type==="css"&&r.push({attributes:{href:a.entry,rel:"stylesheet"},tagName:"link"})})}}};var F=(s,e)=>(s=Object.assign(s,{react:`${e}.React`,"react-dom":`${e}.ReactDOM`,"react-dom/client":e,"react/jsx-runtime":e,"react/jsx-dev-runtime":e,"react-router-dom":`${e}.ReactRouterDOM`}),s);var V=(s,e)=>(s=Object.assign(s,{vue:`${e}.Vue`,"vue-router":`${e}.VueRouter`}),s);var d=(s={})=>({name:"@empjs/share",async rsConfig(e){s.manifest===!0?s.manifest={fileName:"emp.json"}:typeof s.manifest=="object"&&(s.manifest=e.deepAssign({fileName:"emp.json"},s.manifest)),new c(s,e).setup()}}),q=d;export{q as default,F as externalReact,V as externalVue,d as pluginRspackEmpShare};
1
+ var d=Object.defineProperty;var x=(i,e,t)=>e in i?d(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var l=(i,e,t)=>x(i,typeof e!="symbol"?e+"":e,t);var h=(i,e,t)=>new Promise((r,o)=>{var a=m=>{try{n(t.next(m))}catch(p){o(p)}},s=m=>{try{n(t.throw(m))}catch(p){o(p)}},n=m=>m.done?r(m.value):Promise.resolve(m.value).then(a,s);n((t=t.apply(i,e)).next())});var b=i=>`data:text/javascript,${i}`;function f(i,...e){for(let t of e)for(let r in t){let o=t[r],a=i[r];if(Object(o)==o&&Object(a)===a){i[r]=f(a,o);continue}i[r]=t[r]}return i}var E=!1,L=E?console.log.bind(console,"[EMP Share]"):()=>{};var y="EMP_SHARE_RUNTIME";import{ModuleFederationPlugin as g}from"@empjs/module-federation-rspack";var S=i=>{let e=[`import '${i}'`].join(`
2
+ `);return b(e)},c=class{constructor(e){l(this,"options");this.options=e}apply(e){let{webpack:t}=e,r=S("@empjs/share/library");new t.EntryPlugin(e.context,r,{name:void 0}).apply(e)}};function j(i,e,t="runtime"){return typeof i=="string"?t==="runtime"?`${i}/runtime${e==="development"?".development":""}.umd.js`:`${i}/${t}.${e}.umd.js`:typeof i=="object"?e==="development"?i.dev:i.prod:""}var k=/^([0-9a-zA-Z_\s]+)@(.*)/,u=class{constructor(e,t){l(this,"op");l(this,"store");l(this,"injectHtml",[]);l(this,"externalsLib",[]);l(this,"fk");l(this,"rt");this.op=e||{},this.store=t}setup(){this.resetRuntime(),this.resetFramework(),this.setMfName(),this.setMF(),this.injectGlobalVal(),this.injectFramework(),this.setShareLib(),this.setRuntimeLib(),this.injectToHtml(),this.setExternal()}injectToHtml(){let{store:e,injectHtml:t}=this;t.length>0&&e.injectTags(t,"EMPShare")}injectFramework(){if(this.fk&&this.fk.libs.length>0)return this.injectFkLibs(this.fk.libs);if(!this.op.empRuntime||!this.fk.lib)return;let{store:e,injectHtml:t}=this;if(this.fk.lib){let r=j(this.fk.lib,e.mode,this.fk.entry);t.push({attributes:{src:r},tagName:"script"})}}injectFkLibs(e){e.map(t=>{if(t.endsWith(".css"))return this.injectHtml.push({attributes:{href:t,rel:"stylesheet"},tagName:"link"});this.injectHtml.push({attributes:{src:t},tagName:"script"})})}injectGlobalVal(){if(!this.op.empRuntime)return;let{empRuntime:e}=this.op,{injectHtml:t}=this,r=this.fk.global||(e.shareLib?"window":"");if(!(e.injectGlobalValToHtml===!1||!this.rt.lib)){let a={frameworkLib:r,runtimeLib:this.rt.global};this.fk.name&&this.fk.name!=="none"&&(a.framework=this.fk.name),t.push({tagName:"script",innerHTML:`EMPShareGlobalVal=${JSON.stringify(a)}`})}}resetFramework(){if(!this.op.empRuntime)return;let{framework:e,frameworkGlobal:t,frameworkLib:r}=this.op.empRuntime;this.fk={name:"none",version:0,entry:"",global:t||"",lib:r||"",libs:[]},typeof e=="string"?this.fk.name=e:typeof e=="object"&&Object.keys(e).length>0&&(e.entry=e.entry?e.entry:e.name,this.fk=f(this.fk,e))}resetRuntime(){var o;let{empRuntime:e}=this.op;if(!e)return;let t=e.runtimeGlobal||y,r=e.runtimeLib?e.runtimeLib:(o=e.runtime)!=null&&o.lib?e.runtime.lib:"";this.rt={lib:r,global:t}}setExternal(){if(!this.op.empRuntime)return;let{store:e,externalsLib:t}=this,{empRuntime:r}=this.op,{shareLib:o}=r,a=this.rt.lib?{"@module-federation/runtime":"MFRuntime","@module-federation/sdk":"MFSDK"}:{},s={};for(let[n,m]of Object.entries(a))s[n]=`${this.rt.global}.${m}`;if(this.fk.name==="react"&&!o&&this.fk.global){let n=this.fk.version,m={react:"React","react-dom":"ReactDOM"};this.fk.entry==="reactRouter"&&(m["react-router-dom"]="ReactRouterDOM");for(let[p,R]of Object.entries(m))s[p]=`${this.fk.global}.${R}`;[17,18,19].includes(n)&&(s["react-dom/client"]=this.fk.global,s["react/jsx-runtime"]=this.fk.global,s["react/jsx-dev-runtime"]=this.fk.global)}o&&t.map(n=>{n.type==="js"&&n.module&&n.global&&(s[n.module]=`${this.fk.global}.${n.global}`)}),r.setExternals&&r.setExternals(s,this.fk.global,this.rt.global),e.chain.merge({externals:s})}setRuntimeLib(){if(!this.op.empRuntime)return;let{shareLib:e}=this.op.empRuntime,{store:t,injectHtml:r}=this,{empRuntime:o}=this.op;this.rt.lib?this.rt.lib==="useFrameworkLib"&&!e||r.push({tagName:"script",pos:"head",attributes:{src:this.rt.lib}}):t.chain.plugin("plugin-emp-share-framework").use(c,[o])}setMfName(){this.op.name?(this.op.name=this.store.encodeVarName(this.op.name),this.op.name!==this.store.empConfig.output.uniqueName&&this.store.chain.output.set("uniqueName",this.op.name)):this.op.name=this.store.empConfig.output.uniqueName}setMF(){let e=this.op,{store:t}=this;if(e.name){let r=t.deepAssign({filename:"emp.js"},e);r.empRuntime&&delete r.empRuntime,t.chain.plugin("plugin-emp-share").use(g,[r])}}setShareLib(){if(!this.op.empRuntime)return;let{shareLib:e}=this.op.empRuntime,{externalsLib:t,injectHtml:r}=this;if(e&&typeof e=="object"){for(let[o,a]of Object.entries(e)){let s={};if(s.module=o,typeof a=="string"){let n=a.match(k)||[];n.length>0?(s.global=n[1],s.entry=n[2],s.type="js",t.push(s),s={}):(s.global="",s.entry=a,s.type="js",t.push(s),s={})}else Array.isArray(a)?a.map(n=>{if(!n)return;if(n.split("?")[0].endsWith(".css"))s.entry=n,s.type="css";else{let p=n.match(k)||[];p.length>0?(s.global=p[1],s.entry=p[2],s.type="js"):(s.global="",s.entry=n,s.type="js")}t.push(s),s={}}):typeof a=="object"&&a.entry&&(s.entry=a.entry,s.global=a.global,s.type=a.type,t.push(s),s={})}t.map(o=>{o.type==="js"?r.push({attributes:{src:o.entry},tagName:"script"}):o.type==="css"&&r.push({attributes:{href:o.entry,rel:"stylesheet"},tagName:"link"})})}}};var _=(i,e)=>(i=Object.assign(i,{react:`${e}.React`,"react-dom":`${e}.ReactDOM`,"react-dom/client":e,"react/jsx-runtime":e,"react/jsx-dev-runtime":e,"react-router-dom":`${e}.ReactRouterDOM`}),i);var W=(i,e)=>(i=Object.assign(i,{vue:`${e}.Vue`,"vue-router":`${e}.VueRouter`}),i);var M=(i={})=>({name:"@empjs/share",rsConfig(t){return h(this,null,function*(){i.manifest===!0?i.manifest={fileName:"emp.json"}:typeof i.manifest=="object"&&(i.manifest=t.deepAssign({fileName:"emp.json"},i.manifest)),new u(i,t).setup()})}}),U=M;export{U as default,_ as externalReact,W as externalVue,M as pluginRspackEmpShare};
3
3
  //# sourceMappingURL=rspack.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helper/index.ts","../src/helper/config.ts","../src/helper/rspack.ts","../src/plugins/rspack/plugin.ts","../src/plugins/rspack/utils.ts","../src/plugins/rspack/share.ts","../src/framework/react/config.ts","../src/framework/vue/config.ts","../src/plugins/rspack/index.ts"],"sourcesContent":["export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n","// export {ModuleFederationPlugin} from '@module-federation/rspack'\nexport {ModuleFederationPlugin} from '@empjs/module-federation-rspack'\n","import {Compiler} from '@empjs/cli'\nimport {importJsVm} from 'src/helper'\nimport type {EMPSHARERuntimeOptions} from './types'\n\nconst getShareRuntimeEntry = url => {\n const content = [`import '${url}'`].join('\\n')\n return importJsVm(content)\n}\n// 当没有设置 runtimeLib 时候需要内置\nexport class EmpShareRemoteLibPlugin {\n options: EMPSHARERuntimeOptions\n constructor(op: EMPSHARERuntimeOptions) {\n this.options = op\n }\n apply(compiler: Compiler) {\n const {webpack} = compiler\n const entry = getShareRuntimeEntry('@empjs/share/library')\n new webpack.EntryPlugin(compiler.context, entry, {\n name: undefined,\n }).apply(compiler)\n }\n}\n","import type {EMPSHARERuntimeOptions} from './types'\nexport function getRuntimeLib(host: EMPSHARERuntimeOptions['frameworkLib'], mode: string, entry = 'runtime') {\n if (typeof host === 'string') {\n if (entry === 'runtime') {\n return `${host}/runtime${mode === 'development' ? '.development' : ''}.umd.js`\n } else {\n return `${host}/${entry}.${mode}.umd.js`\n }\n } else if (typeof host === 'object') {\n if (mode === 'development') return host.dev\n else return host.prod\n }\n return ''\n}\n","import type {GlobalStore} from '@empjs/cli'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport {ModuleFederationPlugin} from 'src/helper/rspack'\nimport {EmpShareRemoteLibPlugin} from './plugin'\nimport type {\n EMPPluginShareType,\n ExternalsItemType,\n frameworkOptions,\n ModuleFederationPluginOptions,\n runtimeLibType,\n} from './types'\nimport {getRuntimeLib} from './utils'\n\nconst exp = /^([0-9a-zA-Z_\\s]+)@(.*)/\nexport class EmpShare {\n private op: EMPPluginShareType\n private store: GlobalStore\n /**\n * 注入资源\n */\n private injectHtml: any[] = []\n /**\n * 兼容 shareLib\n */\n private externalsLib: ExternalsItemType[] = []\n constructor(op: EMPPluginShareType, store: GlobalStore) {\n this.op = op || {}\n this.store = store\n }\n setup() {\n this.resetRuntime()\n this.resetFramework()\n this.setMfName() //设置 mfName 默认为 uniqueName\n this.setMF() // 设置 MF 配置\n this.injectGlobalVal() // 插入全局变量 方便emp外的项目调用\n this.injectFramework() // 插入ui框架库\n this.setShareLib() //兼容 emp Sharelib的共享模型设置\n this.setRuntimeLib() // 设置 MF SDK\n this.injectToHtml() //触发插入动作\n this.setExternal() // 设置 external 降低包体\n }\n private injectToHtml() {\n const {store, injectHtml} = this\n if (injectHtml.length > 0) {\n store.injectTags(injectHtml, 'EMPShare')\n }\n }\n private injectFramework() {\n if (this.fk && this.fk.libs.length > 0) {\n return this.injectFkLibs(this.fk.libs)\n }\n if (!this.op.empRuntime || !this.fk.lib) return\n const {store, injectHtml} = this\n if (this.fk.lib) {\n const url = getRuntimeLib(this.fk.lib, store.mode, this.fk.entry)\n injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n }\n }\n private injectFkLibs(libs: string[]) {\n libs.map(url => {\n if (url.endsWith('.css')) {\n return this.injectHtml.push({\n attributes: {\n href: url,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n this.injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n })\n }\n private injectGlobalVal() {\n if (!this.op.empRuntime) return\n const {empRuntime} = this.op\n const {injectHtml} = this\n const frameworkGlobal = this.fk.global || (empRuntime.shareLib ? 'window' : '')\n const injectGlobalValToHtml = empRuntime.injectGlobalValToHtml === false || !this.rt.lib ? false : true\n // 插入全局引用变量 让 empRuntime 可以提前实例化 不需要在页面重复实例化\n if (injectGlobalValToHtml) {\n const injectData: any = {frameworkLib: frameworkGlobal, runtimeLib: this.rt.global}\n if (this.fk.name && this.fk.name !== 'none') injectData.framework = this.fk.name\n injectHtml.push({\n // type: 'js',\n tagName: 'script',\n innerHTML: `EMPShareGlobalVal=${JSON.stringify(injectData)}`,\n })\n }\n }\n public fk!: Required<frameworkOptions>\n private resetFramework() {\n if (!this.op.empRuntime) return\n const {framework, frameworkGlobal, frameworkLib} = this.op.empRuntime\n //\n this.fk = {\n name: 'none',\n version: 0,\n entry: '',\n global: frameworkGlobal || '',\n lib: frameworkLib || '',\n libs: [],\n }\n //\n if (typeof framework === 'string') {\n this.fk.name = framework as any\n }\n // TODO 通用 CDN 的适配方案\n else if (typeof framework === 'object' && Object.keys(framework).length > 0) {\n // 默认 框架名 为入口\n framework.entry = framework.entry ? framework.entry : framework.name\n this.fk = deepAssign(this.fk, framework)\n }\n }\n public rt!: Required<runtimeLibType>\n private resetRuntime() {\n const {empRuntime} = this.op\n if (!empRuntime) return\n const global = empRuntime.runtimeGlobal || shareGlobalName\n const lib = empRuntime.runtimeLib ? empRuntime.runtimeLib : empRuntime.runtime?.lib ? empRuntime.runtime.lib : ''\n this.rt = {\n lib,\n global,\n }\n }\n private setExternal() {\n if (!this.op.empRuntime) return\n const {store, externalsLib} = this\n const {empRuntime} = this.op\n const {shareLib} = empRuntime\n //\n const externalRuntime = this.rt.lib\n ? {\n '@module-federation/runtime': `MFRuntime`,\n '@module-federation/sdk': `MFSDK`,\n }\n : {}\n const externals = {}\n for (const [key, value] of Object.entries(externalRuntime)) {\n externals[key] = `${this.rt.global}.${value}`\n }\n /**\n * TODO\n * 框架相关内容需要移除 share 由外部简化配置实现\n */\n if (this.fk.name === 'react' && !shareLib && this.fk.global) {\n const version = this.fk.version\n const externalReact = {\n react: `React`,\n 'react-dom': `ReactDOM`,\n }\n if (this.fk.entry === 'reactRouter') {\n externalReact['react-router-dom'] = 'ReactRouterDOM'\n }\n for (const [key, value] of Object.entries(externalReact)) {\n externals[key] = `${this.fk.global}.${value}`\n }\n if ([17, 18, 19].includes(version)) {\n externals['react-dom/client'] = this.fk.global\n externals['react/jsx-runtime'] = this.fk.global\n externals['react/jsx-dev-runtime'] = this.fk.global\n }\n }\n if (shareLib) {\n externalsLib.map(v => {\n if (v.type === 'js' && v.module && v.global) {\n externals[v.module] = `${this.fk.global}.${v.global}`\n }\n })\n }\n if (empRuntime.setExternals) empRuntime.setExternals(externals, this.fk.global, this.rt.global)\n //\n // console.log('externals in plugin', externals)\n store.chain.merge({externals})\n }\n private setRuntimeLib() {\n if (!this.op.empRuntime) return\n\n const {shareLib} = this.op.empRuntime\n const {store, injectHtml} = this\n const {empRuntime} = this.op\n if (!this.rt.lib) {\n // 内置 this.rt.lib\n store.chain.plugin('plugin-emp-share-framework').use(EmpShareRemoteLibPlugin, [empRuntime])\n }\n // 统一封装到 frameworkLib\n else if (this.rt.lib === 'useFrameworkLib' && !shareLib) {\n } else {\n // 插入 runtime\n injectHtml.push({tagName: 'script', pos: 'head', attributes: {src: this.rt.lib}})\n }\n }\n private setMfName() {\n if (this.op.name) {\n this.op.name = this.store.encodeVarName(this.op.name)\n if (this.op.name !== this.store.empConfig.output.uniqueName) {\n this.store.chain.output.set('uniqueName', this.op.name)\n }\n } else {\n this.op.name = this.store.empConfig.output.uniqueName\n }\n }\n private setMF() {\n const o = this.op\n const {store} = this\n if (o.name) {\n const op = store.deepAssign<ModuleFederationPluginOptions & {empRuntime: any}>(\n {\n filename: 'emp.js',\n // manifest: false,\n // dts: false,\n // dev: {\n // disableDynamicRemoteTypeHints: true,\n // },\n },\n o,\n )\n //\n // if (o.dev === false) op.dev = false\n //\n if (op.empRuntime) {\n delete op.empRuntime\n }\n // console.log('op', op)\n store.chain.plugin('plugin-emp-share').use(ModuleFederationPlugin, [op])\n }\n }\n private setShareLib() {\n if (!this.op.empRuntime) return\n const {shareLib} = this.op.empRuntime\n const {externalsLib, injectHtml} = this\n if (shareLib && typeof shareLib === 'object') {\n for (const [k, v] of Object.entries(shareLib)) {\n let externalsItem: ExternalsItemType = {}\n externalsItem.module = k\n //增加下划线 支持lodash 等特殊符号的问题 如 _@http\n\n if (typeof v === 'string') {\n const cb: any = v.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n } else {\n externalsItem.global = ''\n externalsItem.entry = v\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n } else if (Array.isArray(v)) {\n v.map(vo => {\n if (!vo) return\n const isCSS = vo.split('?')[0].endsWith('.css')\n if (isCSS) {\n externalsItem.entry = vo\n externalsItem.type = 'css'\n } else {\n const cb: any = vo.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n } else {\n externalsItem.global = ''\n externalsItem.entry = vo\n externalsItem.type = 'js'\n }\n }\n externalsLib.push(externalsItem)\n externalsItem = {}\n })\n } else if (typeof v === 'object' && v.entry) {\n externalsItem.entry = v.entry\n externalsItem.global = v.global\n externalsItem.type = v.type\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n }\n // console.log(externalsLib)\n externalsLib.map(v => {\n if (v.type === 'js') {\n injectHtml.push({\n attributes: {\n src: v.entry,\n },\n tagName: 'script',\n })\n } else if (v.type === 'css') {\n injectHtml.push({\n attributes: {\n href: v.entry,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n })\n }\n }\n}\n","export const externalReact = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n react: `${globalVal}.React`,\n 'react-dom': `${globalVal}.ReactDOM`,\n 'react-dom/client': globalVal,\n 'react/jsx-runtime': globalVal,\n 'react/jsx-dev-runtime': globalVal,\n 'react-router-dom': `${globalVal}.ReactRouterDOM`,\n })\n return o\n}\n","export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n","import type {GlobalStore} from '@empjs/cli'\nimport {EmpShare} from './share'\nimport type {EMPPluginShareType} from './types'\nexport type {EMPPluginShareType}\n//\nexport * from 'src/framework/react/config'\nexport * from 'src/framework/vue/config'\nexport * from './types'\n//\nexport const pluginRspackEmpShare = (o: EMPPluginShareType = {}) => {\n return {\n name: '@empjs/share',\n async rsConfig(store: GlobalStore) {\n //\n if (o.manifest === true) {\n o.manifest = {\n fileName: 'emp.json',\n }\n } else if (typeof o.manifest === 'object') {\n o.manifest = store.deepAssign({fileName: 'emp.json'}, o.manifest)\n }\n const empShare = new EmpShare(o, store)\n empShare.setup()\n },\n }\n}\nexport default pluginRspackEmpShare\n"],"mappings":"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","names":["importJsVm","content","deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","ModuleFederationPlugin","getShareRuntimeEntry","url","content","importJsVm","EmpShareRemoteLibPlugin","op","compiler","webpack","entry","getRuntimeLib","host","mode","entry","exp","EmpShare","op","store","injectHtml","url","getRuntimeLib","libs","empRuntime","frameworkGlobal","injectData","framework","frameworkLib","deepAssign","global","shareGlobalName","lib","externalsLib","shareLib","externalRuntime","externals","key","value","version","externalReact","v","EmpShareRemoteLibPlugin","o","ModuleFederationPlugin","k","externalsItem","cb","vo","externalReact","o","globalVal","externalVue","o","globalVal","pluginRspackEmpShare","o","store","EmpShare","rspack_default"]}
1
+ {"version":3,"sources":["../src/helper/index.ts","../src/helper/config.ts","../src/helper/rspack.ts","../src/plugins/rspack/plugin.ts","../src/plugins/rspack/utils.ts","../src/plugins/rspack/share.ts","../src/framework/react/config.ts","../src/framework/vue/config.ts","../src/plugins/rspack/index.ts"],"sourcesContent":["export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n","// export {ModuleFederationPlugin} from '@module-federation/rspack'\nexport {ModuleFederationPlugin} from '@empjs/module-federation-rspack'\n","import {Compiler} from '@empjs/cli'\nimport {importJsVm} from 'src/helper'\nimport type {EMPSHARERuntimeOptions} from './types'\n\nconst getShareRuntimeEntry = url => {\n const content = [`import '${url}'`].join('\\n')\n return importJsVm(content)\n}\n// 当没有设置 runtimeLib 时候需要内置\nexport class EmpShareRemoteLibPlugin {\n options: EMPSHARERuntimeOptions\n constructor(op: EMPSHARERuntimeOptions) {\n this.options = op\n }\n apply(compiler: Compiler) {\n const {webpack} = compiler\n const entry = getShareRuntimeEntry('@empjs/share/library')\n new webpack.EntryPlugin(compiler.context, entry, {\n name: undefined,\n }).apply(compiler)\n }\n}\n","import type {EMPSHARERuntimeOptions} from './types'\nexport function getRuntimeLib(host: EMPSHARERuntimeOptions['frameworkLib'], mode: string, entry = 'runtime') {\n if (typeof host === 'string') {\n if (entry === 'runtime') {\n return `${host}/runtime${mode === 'development' ? '.development' : ''}.umd.js`\n } else {\n return `${host}/${entry}.${mode}.umd.js`\n }\n } else if (typeof host === 'object') {\n if (mode === 'development') return host.dev\n else return host.prod\n }\n return ''\n}\n","import type {GlobalStore} from '@empjs/cli'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport {ModuleFederationPlugin} from 'src/helper/rspack'\nimport {EmpShareRemoteLibPlugin} from './plugin'\nimport type {\n EMPPluginShareType,\n ExternalsItemType,\n frameworkOptions,\n ModuleFederationPluginOptions,\n runtimeLibType,\n} from './types'\nimport {getRuntimeLib} from './utils'\n\nconst exp = /^([0-9a-zA-Z_\\s]+)@(.*)/\nexport class EmpShare {\n private op: EMPPluginShareType\n private store: GlobalStore\n /**\n * 注入资源\n */\n private injectHtml: any[] = []\n /**\n * 兼容 shareLib\n */\n private externalsLib: ExternalsItemType[] = []\n constructor(op: EMPPluginShareType, store: GlobalStore) {\n this.op = op || {}\n this.store = store\n }\n setup() {\n this.resetRuntime()\n this.resetFramework()\n this.setMfName() //设置 mfName 默认为 uniqueName\n this.setMF() // 设置 MF 配置\n this.injectGlobalVal() // 插入全局变量 方便emp外的项目调用\n this.injectFramework() // 插入ui框架库\n this.setShareLib() //兼容 emp Sharelib的共享模型设置\n this.setRuntimeLib() // 设置 MF SDK\n this.injectToHtml() //触发插入动作\n this.setExternal() // 设置 external 降低包体\n }\n private injectToHtml() {\n const {store, injectHtml} = this\n if (injectHtml.length > 0) {\n store.injectTags(injectHtml, 'EMPShare')\n }\n }\n private injectFramework() {\n if (this.fk && this.fk.libs.length > 0) {\n return this.injectFkLibs(this.fk.libs)\n }\n if (!this.op.empRuntime || !this.fk.lib) return\n const {store, injectHtml} = this\n if (this.fk.lib) {\n const url = getRuntimeLib(this.fk.lib, store.mode, this.fk.entry)\n injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n }\n }\n private injectFkLibs(libs: string[]) {\n libs.map(url => {\n if (url.endsWith('.css')) {\n return this.injectHtml.push({\n attributes: {\n href: url,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n this.injectHtml.push({\n attributes: {\n src: url,\n },\n tagName: 'script',\n })\n })\n }\n private injectGlobalVal() {\n if (!this.op.empRuntime) return\n const {empRuntime} = this.op\n const {injectHtml} = this\n const frameworkGlobal = this.fk.global || (empRuntime.shareLib ? 'window' : '')\n const injectGlobalValToHtml = empRuntime.injectGlobalValToHtml === false || !this.rt.lib ? false : true\n // 插入全局引用变量 让 empRuntime 可以提前实例化 不需要在页面重复实例化\n if (injectGlobalValToHtml) {\n const injectData: any = {frameworkLib: frameworkGlobal, runtimeLib: this.rt.global}\n if (this.fk.name && this.fk.name !== 'none') injectData.framework = this.fk.name\n injectHtml.push({\n // type: 'js',\n tagName: 'script',\n innerHTML: `EMPShareGlobalVal=${JSON.stringify(injectData)}`,\n })\n }\n }\n public fk!: Required<frameworkOptions>\n private resetFramework() {\n if (!this.op.empRuntime) return\n const {framework, frameworkGlobal, frameworkLib} = this.op.empRuntime\n //\n this.fk = {\n name: 'none',\n version: 0,\n entry: '',\n global: frameworkGlobal || '',\n lib: frameworkLib || '',\n libs: [],\n }\n //\n if (typeof framework === 'string') {\n this.fk.name = framework as any\n }\n // TODO 通用 CDN 的适配方案\n else if (typeof framework === 'object' && Object.keys(framework).length > 0) {\n // 默认 框架名 为入口\n framework.entry = framework.entry ? framework.entry : framework.name\n this.fk = deepAssign(this.fk, framework)\n }\n }\n public rt!: Required<runtimeLibType>\n private resetRuntime() {\n const {empRuntime} = this.op\n if (!empRuntime) return\n const global = empRuntime.runtimeGlobal || shareGlobalName\n const lib = empRuntime.runtimeLib ? empRuntime.runtimeLib : empRuntime.runtime?.lib ? empRuntime.runtime.lib : ''\n this.rt = {\n lib,\n global,\n }\n }\n private setExternal() {\n if (!this.op.empRuntime) return\n const {store, externalsLib} = this\n const {empRuntime} = this.op\n const {shareLib} = empRuntime\n //\n const externalRuntime = this.rt.lib\n ? {\n '@module-federation/runtime': `MFRuntime`,\n '@module-federation/sdk': `MFSDK`,\n }\n : {}\n const externals = {}\n for (const [key, value] of Object.entries(externalRuntime)) {\n externals[key] = `${this.rt.global}.${value}`\n }\n /**\n * TODO\n * 框架相关内容需要移除 share 由外部简化配置实现\n */\n if (this.fk.name === 'react' && !shareLib && this.fk.global) {\n const version = this.fk.version\n const externalReact = {\n react: `React`,\n 'react-dom': `ReactDOM`,\n }\n if (this.fk.entry === 'reactRouter') {\n externalReact['react-router-dom'] = 'ReactRouterDOM'\n }\n for (const [key, value] of Object.entries(externalReact)) {\n externals[key] = `${this.fk.global}.${value}`\n }\n if ([17, 18, 19].includes(version)) {\n externals['react-dom/client'] = this.fk.global\n externals['react/jsx-runtime'] = this.fk.global\n externals['react/jsx-dev-runtime'] = this.fk.global\n }\n }\n if (shareLib) {\n externalsLib.map(v => {\n if (v.type === 'js' && v.module && v.global) {\n externals[v.module] = `${this.fk.global}.${v.global}`\n }\n })\n }\n if (empRuntime.setExternals) empRuntime.setExternals(externals, this.fk.global, this.rt.global)\n //\n // console.log('externals in plugin', externals)\n store.chain.merge({externals})\n }\n private setRuntimeLib() {\n if (!this.op.empRuntime) return\n\n const {shareLib} = this.op.empRuntime\n const {store, injectHtml} = this\n const {empRuntime} = this.op\n if (!this.rt.lib) {\n // 内置 this.rt.lib\n store.chain.plugin('plugin-emp-share-framework').use(EmpShareRemoteLibPlugin, [empRuntime])\n }\n // 统一封装到 frameworkLib\n else if (this.rt.lib === 'useFrameworkLib' && !shareLib) {\n } else {\n // 插入 runtime\n injectHtml.push({tagName: 'script', pos: 'head', attributes: {src: this.rt.lib}})\n }\n }\n private setMfName() {\n if (this.op.name) {\n this.op.name = this.store.encodeVarName(this.op.name)\n if (this.op.name !== this.store.empConfig.output.uniqueName) {\n this.store.chain.output.set('uniqueName', this.op.name)\n }\n } else {\n this.op.name = this.store.empConfig.output.uniqueName\n }\n }\n private setMF() {\n const o = this.op\n const {store} = this\n if (o.name) {\n const op = store.deepAssign<ModuleFederationPluginOptions & {empRuntime: any}>(\n {\n filename: 'emp.js',\n // manifest: false,\n // dts: false,\n // dev: {\n // disableDynamicRemoteTypeHints: true,\n // },\n },\n o,\n )\n //\n // if (o.dev === false) op.dev = false\n //\n if (op.empRuntime) {\n delete op.empRuntime\n }\n // console.log('op', op)\n store.chain.plugin('plugin-emp-share').use(ModuleFederationPlugin, [op])\n }\n }\n private setShareLib() {\n if (!this.op.empRuntime) return\n const {shareLib} = this.op.empRuntime\n const {externalsLib, injectHtml} = this\n if (shareLib && typeof shareLib === 'object') {\n for (const [k, v] of Object.entries(shareLib)) {\n let externalsItem: ExternalsItemType = {}\n externalsItem.module = k\n //增加下划线 支持lodash 等特殊符号的问题 如 _@http\n\n if (typeof v === 'string') {\n const cb: any = v.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n } else {\n externalsItem.global = ''\n externalsItem.entry = v\n externalsItem.type = 'js'\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n } else if (Array.isArray(v)) {\n v.map(vo => {\n if (!vo) return\n const isCSS = vo.split('?')[0].endsWith('.css')\n if (isCSS) {\n externalsItem.entry = vo\n externalsItem.type = 'css'\n } else {\n const cb: any = vo.match(exp) || []\n if (cb.length > 0) {\n externalsItem.global = cb[1]\n externalsItem.entry = cb[2]\n externalsItem.type = 'js'\n } else {\n externalsItem.global = ''\n externalsItem.entry = vo\n externalsItem.type = 'js'\n }\n }\n externalsLib.push(externalsItem)\n externalsItem = {}\n })\n } else if (typeof v === 'object' && v.entry) {\n externalsItem.entry = v.entry\n externalsItem.global = v.global\n externalsItem.type = v.type\n externalsLib.push(externalsItem)\n externalsItem = {}\n }\n }\n // console.log(externalsLib)\n externalsLib.map(v => {\n if (v.type === 'js') {\n injectHtml.push({\n attributes: {\n src: v.entry,\n },\n tagName: 'script',\n })\n } else if (v.type === 'css') {\n injectHtml.push({\n attributes: {\n href: v.entry,\n rel: 'stylesheet',\n },\n tagName: 'link',\n })\n }\n })\n }\n }\n}\n","export const externalReact = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n react: `${globalVal}.React`,\n 'react-dom': `${globalVal}.ReactDOM`,\n 'react-dom/client': globalVal,\n 'react/jsx-runtime': globalVal,\n 'react/jsx-dev-runtime': globalVal,\n 'react-router-dom': `${globalVal}.ReactRouterDOM`,\n })\n return o\n}\n","export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n","import type {GlobalStore} from '@empjs/cli'\nimport {EmpShare} from './share'\nimport type {EMPPluginShareType} from './types'\nexport type {EMPPluginShareType}\n//\nexport * from 'src/framework/react/config'\nexport * from 'src/framework/vue/config'\nexport * from './types'\n//\nexport const pluginRspackEmpShare = (o: EMPPluginShareType = {}) => {\n return {\n name: '@empjs/share',\n async rsConfig(store: GlobalStore) {\n //\n if (o.manifest === true) {\n o.manifest = {\n fileName: 'emp.json',\n }\n } else if (typeof o.manifest === 'object') {\n o.manifest = store.deepAssign({fileName: 'emp.json'}, o.manifest)\n }\n const empShare = new EmpShare(o, store)\n empShare.setup()\n },\n }\n}\nexport default pluginRspackEmpShare\n"],"mappings":"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","names":["importJsVm","content","deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","ModuleFederationPlugin","getShareRuntimeEntry","url","content","importJsVm","EmpShareRemoteLibPlugin","op","__publicField","compiler","webpack","entry","getRuntimeLib","host","mode","entry","exp","EmpShare","op","store","__publicField","injectHtml","url","getRuntimeLib","libs","empRuntime","frameworkGlobal","injectData","framework","frameworkLib","deepAssign","_a","global","shareGlobalName","lib","externalsLib","shareLib","externalRuntime","externals","key","value","version","externalReact","v","EmpShareRemoteLibPlugin","o","ModuleFederationPlugin","k","externalsItem","cb","vo","externalReact","o","globalVal","externalVue","o","globalVal","pluginRspackEmpShare","o","store","__async","EmpShare","rspack_default"]}
package/dist/runtime.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var n in e)a(t,n,{get:e[n],enumerable:!0})},y=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of b(e))!h.call(t,i)&&i!==n&&a(t,i,{get:()=>e[i],enumerable:!(o=f(e,i))||o.enumerable});return t};var R=t=>y(a({},"__esModule",{value:!0}),t);var E={};d(E,{EMPRuntime:()=>s,default:()=>T});module.exports=R(E);function p(t,...e){for(let n of e)for(let o in n){let i=n[o],r=t[o];if(Object(i)==i&&Object(r)===r){t[o]=p(r,i);continue}t[o]=n[o]}return t}var I=!1,M=I?console.log.bind(console,"[EMP Share]"):()=>{};var l="EMP_SHARE_RUNTIME";var c=window[l]||{},u=window,{EMPShareGlobalVal:m}=u||{};m&&m.runtimeLib&&(c=u[m.runtimeLib]);var s=class{libs=c;initOptions;options={showLog:!1};shareGlobalName=l;constructor(e){e&&this.setup(e)}mfInstance;setup(e){if(e&&(typeof e=="string"&&(e=window[e]),this.libs=e),!this.libs.MFRuntime||!this.libs.MFSDK)throw new Error("MFRuntime and MFSDK Required!")}init(e={}){if(this.mfInstance)return this.mfInstance;let n={name:"empRuntimeProject",remotes:[]};n=p(n,e),this.mfInstance=this.libs.MFRuntime.createInstance(n)}load(...e){return this.mfInstance?.loadRemote(...e)}register(...e){return this.mfInstance?.registerRemotes(...e)}preload(...e){return this.mfInstance?.preloadRemote(...e)}loadShare(...e){return this.mfInstance?.loadShare(...e)}preloadRemote(...e){return this.mfInstance?.preloadRemote(...e)}},T=new s;0&&(module.exports={EMPRuntime});
1
+ "use strict";var r=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var y=(n,e,t)=>e in n?r(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var R=(n,e)=>{for(var t in e)r(n,t,{get:e[t],enumerable:!0})},I=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of h(e))!d.call(n,i)&&i!==t&&r(n,i,{get:()=>e[i],enumerable:!(o=b(e,i))||o.enumerable});return n};var T=n=>I(r({},"__esModule",{value:!0}),n);var s=(n,e,t)=>y(n,typeof e!="symbol"?e+"":e,t);var M={};R(M,{EMPRuntime:()=>a,default:()=>P});module.exports=T(M);function l(n,...e){for(let t of e)for(let o in t){let i=t[o],p=n[o];if(Object(i)==i&&Object(p)===p){n[o]=l(p,i);continue}n[o]=t[o]}return n}var E=!1,S=E?console.log.bind(console,"[EMP Share]"):()=>{};var m="EMP_SHARE_RUNTIME";var u=window[m]||{},f=window,{EMPShareGlobalVal:c}=f||{};c&&c.runtimeLib&&(u=f[c.runtimeLib]);var a=class{constructor(e){s(this,"libs",u);s(this,"initOptions");s(this,"options",{showLog:!1});s(this,"shareGlobalName",m);s(this,"mfInstance");e&&this.setup(e)}setup(e){if(e&&(typeof e=="string"&&(e=window[e]),this.libs=e),!this.libs.MFRuntime||!this.libs.MFSDK)throw new Error("MFRuntime and MFSDK Required!")}init(e={}){if(this.mfInstance)return this.mfInstance;let t={name:"empRuntimeProject",remotes:[]};t=l(t,e),this.mfInstance=this.libs.MFRuntime.createInstance(t)}load(...e){var t;return(t=this.mfInstance)==null?void 0:t.loadRemote(...e)}register(...e){var t;return(t=this.mfInstance)==null?void 0:t.registerRemotes(...e)}preload(...e){var t;return(t=this.mfInstance)==null?void 0:t.preloadRemote(...e)}loadShare(...e){var t;return(t=this.mfInstance)==null?void 0:t.loadShare(...e)}preloadRemote(...e){var t;return(t=this.mfInstance)==null?void 0:t.preloadRemote(...e)}},P=new a;0&&(module.exports={EMPRuntime});
2
2
  //# sourceMappingURL=runtime.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/runtime/index.ts","../src/helper/index.ts","../src/helper/config.ts"],"sourcesContent":["import type {ModuleFederation} from '@module-federation/runtime'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport type {EMPShareRuntimeType, EmpRuntimeOptions, InitOptionsType, LoadRemoteType} from 'src/types'\n\ntype EmpInitOptionsType = Partial<InitOptionsType>\nlet globalLib = window[shareGlobalName] || {}\n// 根据 injectGlobalValToHtml 提前把库赋值到 EMPRuntime\nconst win: any = window\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.runtimeLib) {\n globalLib = win[EMPShareGlobalVal.runtimeLib]\n}\n\nexport class EMPRuntime {\n public libs: EMPShareRuntimeType = globalLib\n public initOptions!: InitOptionsType\n public options: EmpRuntimeOptions = {\n showLog: false,\n }\n public shareGlobalName = shareGlobalName\n constructor(op?: EMPShareRuntimeType) {\n if (op) this.setup(op)\n }\n public mfInstance?: ModuleFederation\n public setup(o?: EMPShareRuntimeType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = o as any\n }\n if (!this.libs.MFRuntime || !this.libs.MFSDK) {\n throw new Error('MFRuntime and MFSDK Required!')\n }\n }\n public init(options: EmpInitOptionsType = {}) {\n if (this.mfInstance) return this.mfInstance\n let op: InitOptionsType = {\n name: 'empRuntimeProject',\n remotes: [],\n // plugins: [catchErrorNextPlugin(this.options.showLog)],\n }\n op = deepAssign<InitOptionsType>(op, options)\n this.mfInstance = this.libs.MFRuntime.createInstance(op)\n }\n public load<T = any>(...args: LoadRemoteType) {\n return this.mfInstance?.loadRemote<T>(...args) as Promise<T>\n }\n public register(...args: Parameters<NonNullable<typeof this.mfInstance>['registerRemotes']>) {\n return this.mfInstance?.registerRemotes(...args)\n }\n public preload(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n public loadShare(...args: Parameters<NonNullable<typeof this.mfInstance>['loadShare']>) {\n return this.mfInstance?.loadShare(...args)\n }\n public preloadRemote(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n}\n//\nexport default new EMPRuntime()\n","export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GCEO,SAASK,EAAcC,KAAgBC,EAAiB,CAC7D,QAAWC,KAAUD,EACnB,QAAWE,KAAKD,EAAQ,CACtB,IAAME,EAAKF,EAAOC,CAAC,EACjBE,EAAKL,EAAOG,CAAC,EACf,GAAI,OAAOC,CAAE,GAAKA,GAAM,OAAOC,CAAE,IAAMA,EAAI,CACzCL,EAAOG,CAAC,EAAIJ,EAAWM,EAAID,CAAE,EAC7B,QACF,CACAJ,EAAOG,CAAC,EAAID,EAAOC,CAAC,CACtB,CAEF,OAAOH,CACT,CAMO,IAAMM,EAAQ,GACRC,EAAMD,EAAQ,QAAQ,IAAI,KAAK,QAAS,aAAa,EAAI,IAAM,CAAC,ECtBtE,IAAME,EAAkB,oBFM/B,IAAIC,EAAY,OAAOC,CAAe,GAAK,CAAC,EAEtCC,EAAW,OACX,CAAC,kBAAAC,CAAiB,EAAID,GAAO,CAAC,EAChCC,GAAqBA,EAAkB,aACzCH,EAAYE,EAAIC,EAAkB,UAAU,GAGvC,IAAMC,EAAN,KAAiB,CACf,KAA4BJ,EAC5B,YACA,QAA6B,CAClC,QAAS,EACX,EACO,gBAAkBC,EACzB,YAAYI,EAA0B,CAChCA,GAAI,KAAK,MAAMA,CAAE,CACvB,CACO,WACA,MAAMC,EAAkC,CAK7C,GAJIA,IACE,OAAOA,GAAM,WAAUA,EAAI,OAAOA,CAAC,GACvC,KAAK,KAAOA,GAEV,CAAC,KAAK,KAAK,WAAa,CAAC,KAAK,KAAK,MACrC,MAAM,IAAI,MAAM,+BAA+B,CAEnD,CACO,KAAKC,EAA8B,CAAC,EAAG,CAC5C,GAAI,KAAK,WAAY,OAAO,KAAK,WACjC,IAAIF,EAAsB,CACxB,KAAM,oBACN,QAAS,CAAC,CAEZ,EACAA,EAAKG,EAA4BH,EAAIE,CAAO,EAC5C,KAAK,WAAa,KAAK,KAAK,UAAU,eAAeF,CAAE,CACzD,CACO,QAAiBI,EAAsB,CAC5C,OAAO,KAAK,YAAY,WAAc,GAAGA,CAAI,CAC/C,CACO,YAAYA,EAA0E,CAC3F,OAAO,KAAK,YAAY,gBAAgB,GAAGA,CAAI,CACjD,CACO,WAAWA,EAAwE,CACxF,OAAO,KAAK,YAAY,cAAc,GAAGA,CAAI,CAC/C,CACO,aAAaA,EAAoE,CACtF,OAAO,KAAK,YAAY,UAAU,GAAGA,CAAI,CAC3C,CACO,iBAAiBA,EAAwE,CAC9F,OAAO,KAAK,YAAY,cAAc,GAAGA,CAAI,CAC/C,CACF,EAEOC,EAAQ,IAAIN","names":["runtime_exports","__export","EMPRuntime","runtime_default","__toCommonJS","deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","globalLib","shareGlobalName","win","EMPShareGlobalVal","EMPRuntime","op","o","options","deepAssign","args","runtime_default"]}
1
+ {"version":3,"sources":["../src/runtime/index.ts","../src/helper/index.ts","../src/helper/config.ts"],"sourcesContent":["import type {ModuleFederation} from '@module-federation/runtime'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport type {EMPShareRuntimeType, EmpRuntimeOptions, InitOptionsType, LoadRemoteType} from 'src/types'\n\ntype EmpInitOptionsType = Partial<InitOptionsType>\nlet globalLib = window[shareGlobalName] || {}\n// 根据 injectGlobalValToHtml 提前把库赋值到 EMPRuntime\nconst win: any = window\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.runtimeLib) {\n globalLib = win[EMPShareGlobalVal.runtimeLib]\n}\n\nexport class EMPRuntime {\n public libs: EMPShareRuntimeType = globalLib\n public initOptions!: InitOptionsType\n public options: EmpRuntimeOptions = {\n showLog: false,\n }\n public shareGlobalName = shareGlobalName\n constructor(op?: EMPShareRuntimeType) {\n if (op) this.setup(op)\n }\n public mfInstance?: ModuleFederation\n public setup(o?: EMPShareRuntimeType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = o as any\n }\n if (!this.libs.MFRuntime || !this.libs.MFSDK) {\n throw new Error('MFRuntime and MFSDK Required!')\n }\n }\n public init(options: EmpInitOptionsType = {}) {\n if (this.mfInstance) return this.mfInstance\n let op: InitOptionsType = {\n name: 'empRuntimeProject',\n remotes: [],\n // plugins: [catchErrorNextPlugin(this.options.showLog)],\n }\n op = deepAssign<InitOptionsType>(op, options)\n this.mfInstance = this.libs.MFRuntime.createInstance(op)\n }\n public load<T = any>(...args: LoadRemoteType) {\n return this.mfInstance?.loadRemote<T>(...args) as Promise<T>\n }\n public register(...args: Parameters<NonNullable<typeof this.mfInstance>['registerRemotes']>) {\n return this.mfInstance?.registerRemotes(...args)\n }\n public preload(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n public loadShare(...args: Parameters<NonNullable<typeof this.mfInstance>['loadShare']>) {\n return this.mfInstance?.loadShare(...args)\n }\n public preloadRemote(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n}\n//\nexport default new EMPRuntime()\n","export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n"],"mappings":"ijBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GCEO,SAASK,EAAcC,KAAgBC,EAAiB,CAC7D,QAAWC,KAAUD,EACnB,QAAWE,KAAKD,EAAQ,CACtB,IAAME,EAAKF,EAAOC,CAAC,EACjBE,EAAKL,EAAOG,CAAC,EACf,GAAI,OAAOC,CAAE,GAAKA,GAAM,OAAOC,CAAE,IAAMA,EAAI,CACzCL,EAAOG,CAAC,EAAIJ,EAAWM,EAAID,CAAE,EAC7B,QACF,CACAJ,EAAOG,CAAC,EAAID,EAAOC,CAAC,CACtB,CAEF,OAAOH,CACT,CAMO,IAAMM,EAAQ,GACRC,EAAMD,EAAQ,QAAQ,IAAI,KAAK,QAAS,aAAa,EAAI,IAAM,CAAC,ECtBtE,IAAME,EAAkB,oBFM/B,IAAIC,EAAY,OAAOC,CAAe,GAAK,CAAC,EAEtCC,EAAW,OACX,CAAC,kBAAAC,CAAiB,EAAID,GAAO,CAAC,EAChCC,GAAqBA,EAAkB,aACzCH,EAAYE,EAAIC,EAAkB,UAAU,GAGvC,IAAMC,EAAN,KAAiB,CAOtB,YAAYC,EAA0B,CANtCC,EAAA,KAAO,OAA4BN,GACnCM,EAAA,KAAO,eACPA,EAAA,KAAO,UAA6B,CAClC,QAAS,EACX,GACAA,EAAA,KAAO,kBAAkBL,GAIzBK,EAAA,KAAO,cAFDD,GAAI,KAAK,MAAMA,CAAE,CACvB,CAEO,MAAME,EAAkC,CAK7C,GAJIA,IACE,OAAOA,GAAM,WAAUA,EAAI,OAAOA,CAAC,GACvC,KAAK,KAAOA,GAEV,CAAC,KAAK,KAAK,WAAa,CAAC,KAAK,KAAK,MACrC,MAAM,IAAI,MAAM,+BAA+B,CAEnD,CACO,KAAKC,EAA8B,CAAC,EAAG,CAC5C,GAAI,KAAK,WAAY,OAAO,KAAK,WACjC,IAAIH,EAAsB,CACxB,KAAM,oBACN,QAAS,CAAC,CAEZ,EACAA,EAAKI,EAA4BJ,EAAIG,CAAO,EAC5C,KAAK,WAAa,KAAK,KAAK,UAAU,eAAeH,CAAE,CACzD,CACO,QAAiBK,EAAsB,CA5ChD,IAAAC,EA6CI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,WAAc,GAAGD,EAC3C,CACO,YAAYA,EAA0E,CA/C/F,IAAAC,EAgDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,gBAAgB,GAAGD,EAC7C,CACO,WAAWA,EAAwE,CAlD5F,IAAAC,EAmDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,cAAc,GAAGD,EAC3C,CACO,aAAaA,EAAoE,CArD1F,IAAAC,EAsDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,UAAU,GAAGD,EACvC,CACO,iBAAiBA,EAAwE,CAxDlG,IAAAC,EAyDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,cAAc,GAAGD,EAC3C,CACF,EAEOE,EAAQ,IAAIR","names":["runtime_exports","__export","EMPRuntime","runtime_default","__toCommonJS","deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","globalLib","shareGlobalName","win","EMPShareGlobalVal","EMPRuntime","op","__publicField","o","options","deepAssign","args","_a","runtime_default"]}
package/dist/runtime.js CHANGED
@@ -1,2 +1,2 @@
1
- function r(n,...e){for(let t of e)for(let i in t){let o=t[i],s=n[i];if(Object(o)==o&&Object(s)===s){n[i]=r(s,o);continue}n[i]=t[i]}return n}var u=!1,f=u?console.log.bind(console,"[EMP Share]"):()=>{};var a="EMP_SHARE_RUNTIME";var m=window[a]||{},c=window,{EMPShareGlobalVal:p}=c||{};p&&p.runtimeLib&&(m=c[p.runtimeLib]);var l=class{libs=m;initOptions;options={showLog:!1};shareGlobalName=a;constructor(e){e&&this.setup(e)}mfInstance;setup(e){if(e&&(typeof e=="string"&&(e=window[e]),this.libs=e),!this.libs.MFRuntime||!this.libs.MFSDK)throw new Error("MFRuntime and MFSDK Required!")}init(e={}){if(this.mfInstance)return this.mfInstance;let t={name:"empRuntimeProject",remotes:[]};t=r(t,e),this.mfInstance=this.libs.MFRuntime.createInstance(t)}load(...e){return this.mfInstance?.loadRemote(...e)}register(...e){return this.mfInstance?.registerRemotes(...e)}preload(...e){return this.mfInstance?.preloadRemote(...e)}loadShare(...e){return this.mfInstance?.loadShare(...e)}preloadRemote(...e){return this.mfInstance?.preloadRemote(...e)}},R=new l;export{l as EMPRuntime,R as default};
1
+ var f=Object.defineProperty;var b=(n,e,t)=>e in n?f(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var i=(n,e,t)=>b(n,typeof e!="symbol"?e+"":e,t);function a(n,...e){for(let t of e)for(let o in t){let s=t[o],r=n[o];if(Object(s)==s&&Object(r)===r){n[o]=a(r,s);continue}n[o]=t[o]}return n}var h=!1,y=h?console.log.bind(console,"[EMP Share]"):()=>{};var p="EMP_SHARE_RUNTIME";var c=window[p]||{},u=window,{EMPShareGlobalVal:l}=u||{};l&&l.runtimeLib&&(c=u[l.runtimeLib]);var m=class{constructor(e){i(this,"libs",c);i(this,"initOptions");i(this,"options",{showLog:!1});i(this,"shareGlobalName",p);i(this,"mfInstance");e&&this.setup(e)}setup(e){if(e&&(typeof e=="string"&&(e=window[e]),this.libs=e),!this.libs.MFRuntime||!this.libs.MFSDK)throw new Error("MFRuntime and MFSDK Required!")}init(e={}){if(this.mfInstance)return this.mfInstance;let t={name:"empRuntimeProject",remotes:[]};t=a(t,e),this.mfInstance=this.libs.MFRuntime.createInstance(t)}load(...e){var t;return(t=this.mfInstance)==null?void 0:t.loadRemote(...e)}register(...e){var t;return(t=this.mfInstance)==null?void 0:t.registerRemotes(...e)}preload(...e){var t;return(t=this.mfInstance)==null?void 0:t.preloadRemote(...e)}loadShare(...e){var t;return(t=this.mfInstance)==null?void 0:t.loadShare(...e)}preloadRemote(...e){var t;return(t=this.mfInstance)==null?void 0:t.preloadRemote(...e)}},P=new m;export{m as EMPRuntime,P as default};
2
2
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helper/index.ts","../src/helper/config.ts","../src/runtime/index.ts"],"sourcesContent":["export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n","import type {ModuleFederation} from '@module-federation/runtime'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport type {EMPShareRuntimeType, EmpRuntimeOptions, InitOptionsType, LoadRemoteType} from 'src/types'\n\ntype EmpInitOptionsType = Partial<InitOptionsType>\nlet globalLib = window[shareGlobalName] || {}\n// 根据 injectGlobalValToHtml 提前把库赋值到 EMPRuntime\nconst win: any = window\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.runtimeLib) {\n globalLib = win[EMPShareGlobalVal.runtimeLib]\n}\n\nexport class EMPRuntime {\n public libs: EMPShareRuntimeType = globalLib\n public initOptions!: InitOptionsType\n public options: EmpRuntimeOptions = {\n showLog: false,\n }\n public shareGlobalName = shareGlobalName\n constructor(op?: EMPShareRuntimeType) {\n if (op) this.setup(op)\n }\n public mfInstance?: ModuleFederation\n public setup(o?: EMPShareRuntimeType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = o as any\n }\n if (!this.libs.MFRuntime || !this.libs.MFSDK) {\n throw new Error('MFRuntime and MFSDK Required!')\n }\n }\n public init(options: EmpInitOptionsType = {}) {\n if (this.mfInstance) return this.mfInstance\n let op: InitOptionsType = {\n name: 'empRuntimeProject',\n remotes: [],\n // plugins: [catchErrorNextPlugin(this.options.showLog)],\n }\n op = deepAssign<InitOptionsType>(op, options)\n this.mfInstance = this.libs.MFRuntime.createInstance(op)\n }\n public load<T = any>(...args: LoadRemoteType) {\n return this.mfInstance?.loadRemote<T>(...args) as Promise<T>\n }\n public register(...args: Parameters<NonNullable<typeof this.mfInstance>['registerRemotes']>) {\n return this.mfInstance?.registerRemotes(...args)\n }\n public preload(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n public loadShare(...args: Parameters<NonNullable<typeof this.mfInstance>['loadShare']>) {\n return this.mfInstance?.loadShare(...args)\n }\n public preloadRemote(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n}\n//\nexport default new EMPRuntime()\n"],"mappings":"AAEO,SAASA,EAAcC,KAAgBC,EAAiB,CAC7D,QAAWC,KAAUD,EACnB,QAAWE,KAAKD,EAAQ,CACtB,IAAME,EAAKF,EAAOC,CAAC,EACjBE,EAAKL,EAAOG,CAAC,EACf,GAAI,OAAOC,CAAE,GAAKA,GAAM,OAAOC,CAAE,IAAMA,EAAI,CACzCL,EAAOG,CAAC,EAAIJ,EAAWM,EAAID,CAAE,EAC7B,QACF,CACAJ,EAAOG,CAAC,EAAID,EAAOC,CAAC,CACtB,CAEF,OAAOH,CACT,CAMO,IAAMM,EAAQ,GACRC,EAAMD,EAAQ,QAAQ,IAAI,KAAK,QAAS,aAAa,EAAI,IAAM,CAAC,ECtBtE,IAAME,EAAkB,oBCM/B,IAAIC,EAAY,OAAOC,CAAe,GAAK,CAAC,EAEtCC,EAAW,OACX,CAAC,kBAAAC,CAAiB,EAAID,GAAO,CAAC,EAChCC,GAAqBA,EAAkB,aACzCH,EAAYE,EAAIC,EAAkB,UAAU,GAGvC,IAAMC,EAAN,KAAiB,CACf,KAA4BJ,EAC5B,YACA,QAA6B,CAClC,QAAS,EACX,EACO,gBAAkBC,EACzB,YAAYI,EAA0B,CAChCA,GAAI,KAAK,MAAMA,CAAE,CACvB,CACO,WACA,MAAMC,EAAkC,CAK7C,GAJIA,IACE,OAAOA,GAAM,WAAUA,EAAI,OAAOA,CAAC,GACvC,KAAK,KAAOA,GAEV,CAAC,KAAK,KAAK,WAAa,CAAC,KAAK,KAAK,MACrC,MAAM,IAAI,MAAM,+BAA+B,CAEnD,CACO,KAAKC,EAA8B,CAAC,EAAG,CAC5C,GAAI,KAAK,WAAY,OAAO,KAAK,WACjC,IAAIF,EAAsB,CACxB,KAAM,oBACN,QAAS,CAAC,CAEZ,EACAA,EAAKG,EAA4BH,EAAIE,CAAO,EAC5C,KAAK,WAAa,KAAK,KAAK,UAAU,eAAeF,CAAE,CACzD,CACO,QAAiBI,EAAsB,CAC5C,OAAO,KAAK,YAAY,WAAc,GAAGA,CAAI,CAC/C,CACO,YAAYA,EAA0E,CAC3F,OAAO,KAAK,YAAY,gBAAgB,GAAGA,CAAI,CACjD,CACO,WAAWA,EAAwE,CACxF,OAAO,KAAK,YAAY,cAAc,GAAGA,CAAI,CAC/C,CACO,aAAaA,EAAoE,CACtF,OAAO,KAAK,YAAY,UAAU,GAAGA,CAAI,CAC3C,CACO,iBAAiBA,EAAwE,CAC9F,OAAO,KAAK,YAAY,cAAc,GAAGA,CAAI,CAC/C,CACF,EAEOC,EAAQ,IAAIN","names":["deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","globalLib","shareGlobalName","win","EMPShareGlobalVal","EMPRuntime","op","o","options","deepAssign","args","runtime_default"]}
1
+ {"version":3,"sources":["../src/helper/index.ts","../src/helper/config.ts","../src/runtime/index.ts"],"sourcesContent":["export const importJsVm = (content: string) => `data:text/javascript,${content}`\n\nexport function deepAssign<T>(target: any, ...sources: any): T {\n for (const source of sources) {\n for (const k in source) {\n const vs = source[k],\n vt = target[k]\n if (Object(vs) == vs && Object(vt) === vt) {\n target[k] = deepAssign(vt, vs)\n continue\n }\n target[k] = source[k]\n }\n }\n return target\n}\n\nexport const checkVersion = (version: string) => (version ? Number(version.split('.')[0]) : 0)\nexport const isPromise = (p: any) => p && Object.prototype.toString.call(p) === '[object Promise]'\n\n//\nexport const isDev = process.env.EMPSHARE_ENV === 'dev'\nexport const log = isDev ? console.log.bind(console, '[EMP Share]') : () => {}\n","export const shareGlobalName = 'EMP_SHARE_RUNTIME'\n","import type {ModuleFederation} from '@module-federation/runtime'\nimport {deepAssign} from 'src/helper'\nimport {shareGlobalName} from 'src/helper/config'\nimport type {EMPShareRuntimeType, EmpRuntimeOptions, InitOptionsType, LoadRemoteType} from 'src/types'\n\ntype EmpInitOptionsType = Partial<InitOptionsType>\nlet globalLib = window[shareGlobalName] || {}\n// 根据 injectGlobalValToHtml 提前把库赋值到 EMPRuntime\nconst win: any = window\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.runtimeLib) {\n globalLib = win[EMPShareGlobalVal.runtimeLib]\n}\n\nexport class EMPRuntime {\n public libs: EMPShareRuntimeType = globalLib\n public initOptions!: InitOptionsType\n public options: EmpRuntimeOptions = {\n showLog: false,\n }\n public shareGlobalName = shareGlobalName\n constructor(op?: EMPShareRuntimeType) {\n if (op) this.setup(op)\n }\n public mfInstance?: ModuleFederation\n public setup(o?: EMPShareRuntimeType | string) {\n if (o) {\n if (typeof o === 'string') o = window[o]\n this.libs = o as any\n }\n if (!this.libs.MFRuntime || !this.libs.MFSDK) {\n throw new Error('MFRuntime and MFSDK Required!')\n }\n }\n public init(options: EmpInitOptionsType = {}) {\n if (this.mfInstance) return this.mfInstance\n let op: InitOptionsType = {\n name: 'empRuntimeProject',\n remotes: [],\n // plugins: [catchErrorNextPlugin(this.options.showLog)],\n }\n op = deepAssign<InitOptionsType>(op, options)\n this.mfInstance = this.libs.MFRuntime.createInstance(op)\n }\n public load<T = any>(...args: LoadRemoteType) {\n return this.mfInstance?.loadRemote<T>(...args) as Promise<T>\n }\n public register(...args: Parameters<NonNullable<typeof this.mfInstance>['registerRemotes']>) {\n return this.mfInstance?.registerRemotes(...args)\n }\n public preload(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n public loadShare(...args: Parameters<NonNullable<typeof this.mfInstance>['loadShare']>) {\n return this.mfInstance?.loadShare(...args)\n }\n public preloadRemote(...args: Parameters<NonNullable<typeof this.mfInstance>['preloadRemote']>) {\n return this.mfInstance?.preloadRemote(...args)\n }\n}\n//\nexport default new EMPRuntime()\n"],"mappings":"oKAEO,SAASA,EAAcC,KAAgBC,EAAiB,CAC7D,QAAWC,KAAUD,EACnB,QAAWE,KAAKD,EAAQ,CACtB,IAAME,EAAKF,EAAOC,CAAC,EACjBE,EAAKL,EAAOG,CAAC,EACf,GAAI,OAAOC,CAAE,GAAKA,GAAM,OAAOC,CAAE,IAAMA,EAAI,CACzCL,EAAOG,CAAC,EAAIJ,EAAWM,EAAID,CAAE,EAC7B,QACF,CACAJ,EAAOG,CAAC,EAAID,EAAOC,CAAC,CACtB,CAEF,OAAOH,CACT,CAMO,IAAMM,EAAQ,GACRC,EAAMD,EAAQ,QAAQ,IAAI,KAAK,QAAS,aAAa,EAAI,IAAM,CAAC,ECtBtE,IAAME,EAAkB,oBCM/B,IAAIC,EAAY,OAAOC,CAAe,GAAK,CAAC,EAEtCC,EAAW,OACX,CAAC,kBAAAC,CAAiB,EAAID,GAAO,CAAC,EAChCC,GAAqBA,EAAkB,aACzCH,EAAYE,EAAIC,EAAkB,UAAU,GAGvC,IAAMC,EAAN,KAAiB,CAOtB,YAAYC,EAA0B,CANtCC,EAAA,KAAO,OAA4BN,GACnCM,EAAA,KAAO,eACPA,EAAA,KAAO,UAA6B,CAClC,QAAS,EACX,GACAA,EAAA,KAAO,kBAAkBL,GAIzBK,EAAA,KAAO,cAFDD,GAAI,KAAK,MAAMA,CAAE,CACvB,CAEO,MAAME,EAAkC,CAK7C,GAJIA,IACE,OAAOA,GAAM,WAAUA,EAAI,OAAOA,CAAC,GACvC,KAAK,KAAOA,GAEV,CAAC,KAAK,KAAK,WAAa,CAAC,KAAK,KAAK,MACrC,MAAM,IAAI,MAAM,+BAA+B,CAEnD,CACO,KAAKC,EAA8B,CAAC,EAAG,CAC5C,GAAI,KAAK,WAAY,OAAO,KAAK,WACjC,IAAIH,EAAsB,CACxB,KAAM,oBACN,QAAS,CAAC,CAEZ,EACAA,EAAKI,EAA4BJ,EAAIG,CAAO,EAC5C,KAAK,WAAa,KAAK,KAAK,UAAU,eAAeH,CAAE,CACzD,CACO,QAAiBK,EAAsB,CA5ChD,IAAAC,EA6CI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,WAAc,GAAGD,EAC3C,CACO,YAAYA,EAA0E,CA/C/F,IAAAC,EAgDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,gBAAgB,GAAGD,EAC7C,CACO,WAAWA,EAAwE,CAlD5F,IAAAC,EAmDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,cAAc,GAAGD,EAC3C,CACO,aAAaA,EAAoE,CArD1F,IAAAC,EAsDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,UAAU,GAAGD,EACvC,CACO,iBAAiBA,EAAwE,CAxDlG,IAAAC,EAyDI,OAAOA,EAAA,KAAK,aAAL,YAAAA,EAAiB,cAAc,GAAGD,EAC3C,CACF,EAEOE,EAAQ,IAAIR","names":["deepAssign","target","sources","source","k","vs","vt","isDev","log","shareGlobalName","globalLib","shareGlobalName","win","EMPShareGlobalVal","EMPRuntime","op","__publicField","o","options","deepAssign","args","_a","runtime_default"]}
package/dist/vue.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var t=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var v=Object.prototype.hasOwnProperty;var V=(r,e)=>{for(var n in e)t(r,n,{get:e[n],enumerable:!0})},d=(r,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of m(e))!v.call(r,o)&&o!==n&&t(r,o,{get:()=>e[o],enumerable:!(s=c(e,o))||s.enumerable});return r};var f=r=>d(t({},"__esModule",{value:!0}),r);var g={};V(g,{external:()=>h,shared:()=>l});module.exports=f(g);var u=(r,e)=>(r=Object.assign(r,{vue:`${e}.Vue`,"vue-router":`${e}.VueRouter`}),r);var a=window,p={},{EMPShareGlobalVal:i}=a||{};i&&i.frameworkLib&&(p=a[i.frameworkLib]);var b={scope:"default",...p},l=()=>{let{Vue:r,VueRouter:e,scope:n}=b;return{vue:{lib:()=>r,version:r.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${r.version}`}},"vue-router":{lib:()=>e,version:e.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}}}};var h=u;0&&(module.exports={external,shared});
1
+ "use strict";var t=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable;var a=(r,e,n)=>e in r?t(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n,l=(r,e)=>{for(var n in e||(e={}))p.call(e,n)&&a(r,n,e[n]);if(u)for(var n of u(e))b.call(e,n)&&a(r,n,e[n]);return r};var h=(r,e)=>{for(var n in e)t(r,n,{get:e[n],enumerable:!0})},g=(r,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of f(e))!p.call(r,o)&&o!==n&&t(r,o,{get:()=>e[o],enumerable:!(s=d(e,o))||s.enumerable});return r};var x=r=>g(t({},"__esModule",{value:!0}),r);var R={};h(R,{external:()=>w,shared:()=>V});module.exports=x(R);var c=(r,e)=>(r=Object.assign(r,{vue:`${e}.Vue`,"vue-router":`${e}.VueRouter`}),r);var m=window,v={},{EMPShareGlobalVal:i}=m||{};i&&i.frameworkLib&&(v=m[i.frameworkLib]);var y=l({scope:"default"},v),V=()=>{let{Vue:r,VueRouter:e,scope:n}=y;return{vue:{lib:()=>r,version:r.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${r.version}`}},"vue-router":{lib:()=>e,version:e.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}}}};var w=c;0&&(module.exports={external,shared});
2
2
  //# sourceMappingURL=vue.cjs.map
package/dist/vue.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/framework/vue/index.ts","../src/framework/vue/config.ts","../src/framework/vue/shared.ts"],"sourcesContent":["import {externalVue} from './config'\nimport {shared} from './shared'\n\nconst external = externalVue\nexport {shared, external}\n","export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n","import {EMPShareRuntimeAdapterVueType, InitOptionsType} from 'src/types'\n\n// o['vue'] = `EMP_ADAPTER_VUE.Vue`\n// o['vue-router'] = `EMP_ADAPTER_VUE.VueRouter`\n// o['pinia'] = `EMP_ADAPTER_VUE.Pinia`\nconst win: any = window\nlet globalLib = {}\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\nconst libs: EMPShareRuntimeAdapterVueType = {\n scope: 'default',\n ...globalLib,\n}\nexport const shared = (): InitOptionsType['shared'] => {\n const {Vue, VueRouter, scope} = libs\n return {\n vue: {\n lib: () => Vue,\n version: Vue.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${Vue.version}`,\n },\n },\n 'vue-router': {\n lib: () => VueRouter,\n version: VueRouter.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${VueRouter.version}`,\n },\n },\n }\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GCAO,IAAMK,EAAc,CAACC,EAAQC,KAClCD,EAAI,OAAO,OAAOA,EAAG,CACnB,IAAK,GAAGC,CAAS,OACjB,aAAc,GAAGA,CAAS,YAC5B,CAAC,EACMD,GCAT,IAAME,EAAW,OACbC,EAAY,CAAC,EACX,CAAC,kBAAAC,CAAiB,EAAIF,GAAO,CAAC,EAChCE,GAAqBA,EAAkB,eACzCD,EAAYD,EAAIE,EAAkB,YAAY,GAEhD,IAAMC,EAAsC,CAC1C,MAAO,UACP,GAAGF,CACL,EACaG,EAAS,IAAiC,CACrD,GAAM,CAAC,IAAAC,EAAK,UAAAC,EAAW,MAAAC,CAAK,EAAIJ,EAChC,MAAO,CACL,IAAK,CACH,IAAK,IAAME,EACX,QAASA,EAAI,QACb,MAAAE,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAIF,EAAI,OAAO,EAClC,CACF,EACA,aAAc,CACZ,IAAK,IAAMC,EACX,QAASA,EAAU,QACnB,MAAAC,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAID,EAAU,OAAO,EACxC,CACF,CACF,CACF,EFlCA,IAAME,EAAWC","names":["vue_exports","__export","external","shared","__toCommonJS","externalVue","o","globalVal","win","globalLib","EMPShareGlobalVal","libs","shared","Vue","VueRouter","scope","external","externalVue"]}
1
+ {"version":3,"sources":["../src/framework/vue/index.ts","../src/framework/vue/config.ts","../src/framework/vue/shared.ts"],"sourcesContent":["import {externalVue} from './config'\nimport {shared} from './shared'\n\nconst external = externalVue\nexport {shared, external}\n","export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n","import {EMPShareRuntimeAdapterVueType, InitOptionsType} from 'src/types'\n\n// o['vue'] = `EMP_ADAPTER_VUE.Vue`\n// o['vue-router'] = `EMP_ADAPTER_VUE.VueRouter`\n// o['pinia'] = `EMP_ADAPTER_VUE.Pinia`\nconst win: any = window\nlet globalLib = {}\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\nconst libs: EMPShareRuntimeAdapterVueType = {\n scope: 'default',\n ...globalLib,\n}\nexport const shared = (): InitOptionsType['shared'] => {\n const {Vue, VueRouter, scope} = libs\n return {\n vue: {\n lib: () => Vue,\n version: Vue.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${Vue.version}`,\n },\n },\n 'vue-router': {\n lib: () => VueRouter,\n version: VueRouter.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${VueRouter.version}`,\n },\n },\n }\n}\n"],"mappings":"4rBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,EAAA,WAAAC,IAAA,eAAAC,EAAAJ,GCAO,IAAMK,EAAc,CAACC,EAAQC,KAClCD,EAAI,OAAO,OAAOA,EAAG,CACnB,IAAK,GAAGC,CAAS,OACjB,aAAc,GAAGA,CAAS,YAC5B,CAAC,EACMD,GCAT,IAAME,EAAW,OACbC,EAAY,CAAC,EACX,CAAC,kBAAAC,CAAiB,EAAIF,GAAO,CAAC,EAChCE,GAAqBA,EAAkB,eACzCD,EAAYD,EAAIE,EAAkB,YAAY,GAEhD,IAAMC,EAAsCC,EAAA,CAC1C,MAAO,WACJH,GAEQI,EAAS,IAAiC,CACrD,GAAM,CAAC,IAAAC,EAAK,UAAAC,EAAW,MAAAC,CAAK,EAAIL,EAChC,MAAO,CACL,IAAK,CACH,IAAK,IAAMG,EACX,QAASA,EAAI,QACb,MAAAE,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAIF,EAAI,OAAO,EAClC,CACF,EACA,aAAc,CACZ,IAAK,IAAMC,EACX,QAASA,EAAU,QACnB,MAAAC,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAID,EAAU,OAAO,EACxC,CACF,CACF,CACF,EFlCA,IAAME,EAAWC","names":["vue_exports","__export","external","shared","__toCommonJS","externalVue","o","globalVal","win","globalLib","EMPShareGlobalVal","libs","__spreadValues","shared","Vue","VueRouter","scope","external","externalVue"]}
package/dist/vue.js CHANGED
@@ -1,2 +1,2 @@
1
- var t=(e,r)=>(e=Object.assign(e,{vue:`${r}.Vue`,"vue-router":`${r}.VueRouter`}),e);var i=window,s={},{EMPShareGlobalVal:n}=i||{};n&&n.frameworkLib&&(s=i[n.frameworkLib]);var u={scope:"default",...s},a=()=>{let{Vue:e,VueRouter:r,scope:o}=u;return{vue:{lib:()=>e,version:e.version,scope:o,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}},"vue-router":{lib:()=>r,version:r.version,scope:o,shareConfig:{singleton:!0,requiredVersion:`^${r.version}`}}}};var v=t;export{v as external,a as shared};
1
+ var l=Object.defineProperty;var t=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var i=(r,e,n)=>e in r?l(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n,s=(r,e)=>{for(var n in e||(e={}))c.call(e,n)&&i(r,n,e[n]);if(t)for(var n of t(e))m.call(e,n)&&i(r,n,e[n]);return r};var u=(r,e)=>(r=Object.assign(r,{vue:`${e}.Vue`,"vue-router":`${e}.VueRouter`}),r);var a=window,p={},{EMPShareGlobalVal:o}=a||{};o&&o.frameworkLib&&(p=a[o.frameworkLib]);var v=s({scope:"default"},p),V=()=>{let{Vue:r,VueRouter:e,scope:n}=v;return{vue:{lib:()=>r,version:r.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${r.version}`}},"vue-router":{lib:()=>e,version:e.version,scope:n,shareConfig:{singleton:!0,requiredVersion:`^${e.version}`}}}};var y=u;export{y as external,V as shared};
2
2
  //# sourceMappingURL=vue.js.map
package/dist/vue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/framework/vue/config.ts","../src/framework/vue/shared.ts","../src/framework/vue/index.ts"],"sourcesContent":["export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n","import {EMPShareRuntimeAdapterVueType, InitOptionsType} from 'src/types'\n\n// o['vue'] = `EMP_ADAPTER_VUE.Vue`\n// o['vue-router'] = `EMP_ADAPTER_VUE.VueRouter`\n// o['pinia'] = `EMP_ADAPTER_VUE.Pinia`\nconst win: any = window\nlet globalLib = {}\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\nconst libs: EMPShareRuntimeAdapterVueType = {\n scope: 'default',\n ...globalLib,\n}\nexport const shared = (): InitOptionsType['shared'] => {\n const {Vue, VueRouter, scope} = libs\n return {\n vue: {\n lib: () => Vue,\n version: Vue.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${Vue.version}`,\n },\n },\n 'vue-router': {\n lib: () => VueRouter,\n version: VueRouter.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${VueRouter.version}`,\n },\n },\n }\n}\n","import {externalVue} from './config'\nimport {shared} from './shared'\n\nconst external = externalVue\nexport {shared, external}\n"],"mappings":"AAAO,IAAMA,EAAc,CAACC,EAAQC,KAClCD,EAAI,OAAO,OAAOA,EAAG,CACnB,IAAK,GAAGC,CAAS,OACjB,aAAc,GAAGA,CAAS,YAC5B,CAAC,EACMD,GCAT,IAAME,EAAW,OACbC,EAAY,CAAC,EACX,CAAC,kBAAAC,CAAiB,EAAIF,GAAO,CAAC,EAChCE,GAAqBA,EAAkB,eACzCD,EAAYD,EAAIE,EAAkB,YAAY,GAEhD,IAAMC,EAAsC,CAC1C,MAAO,UACP,GAAGF,CACL,EACaG,EAAS,IAAiC,CACrD,GAAM,CAAC,IAAAC,EAAK,UAAAC,EAAW,MAAAC,CAAK,EAAIJ,EAChC,MAAO,CACL,IAAK,CACH,IAAK,IAAME,EACX,QAASA,EAAI,QACb,MAAAE,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAIF,EAAI,OAAO,EAClC,CACF,EACA,aAAc,CACZ,IAAK,IAAMC,EACX,QAASA,EAAU,QACnB,MAAAC,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAID,EAAU,OAAO,EACxC,CACF,CACF,CACF,EClCA,IAAME,EAAWC","names":["externalVue","o","globalVal","win","globalLib","EMPShareGlobalVal","libs","shared","Vue","VueRouter","scope","external","externalVue"]}
1
+ {"version":3,"sources":["../src/framework/vue/config.ts","../src/framework/vue/shared.ts","../src/framework/vue/index.ts"],"sourcesContent":["export const externalVue = (o: any, globalVal: string) => {\n o = Object.assign(o, {\n vue: `${globalVal}.Vue`,\n 'vue-router': `${globalVal}.VueRouter`,\n })\n return o\n}\n","import {EMPShareRuntimeAdapterVueType, InitOptionsType} from 'src/types'\n\n// o['vue'] = `EMP_ADAPTER_VUE.Vue`\n// o['vue-router'] = `EMP_ADAPTER_VUE.VueRouter`\n// o['pinia'] = `EMP_ADAPTER_VUE.Pinia`\nconst win: any = window\nlet globalLib = {}\nconst {EMPShareGlobalVal} = win || {}\nif (EMPShareGlobalVal && EMPShareGlobalVal.frameworkLib) {\n globalLib = win[EMPShareGlobalVal.frameworkLib]\n}\nconst libs: EMPShareRuntimeAdapterVueType = {\n scope: 'default',\n ...globalLib,\n}\nexport const shared = (): InitOptionsType['shared'] => {\n const {Vue, VueRouter, scope} = libs\n return {\n vue: {\n lib: () => Vue,\n version: Vue.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${Vue.version}`,\n },\n },\n 'vue-router': {\n lib: () => VueRouter,\n version: VueRouter.version,\n scope,\n shareConfig: {\n singleton: true,\n requiredVersion: `^${VueRouter.version}`,\n },\n },\n }\n}\n","import {externalVue} from './config'\nimport {shared} from './shared'\n\nconst external = externalVue\nexport {shared, external}\n"],"mappings":"yVAAO,IAAMA,EAAc,CAACC,EAAQC,KAClCD,EAAI,OAAO,OAAOA,EAAG,CACnB,IAAK,GAAGC,CAAS,OACjB,aAAc,GAAGA,CAAS,YAC5B,CAAC,EACMD,GCAT,IAAME,EAAW,OACbC,EAAY,CAAC,EACX,CAAC,kBAAAC,CAAiB,EAAIF,GAAO,CAAC,EAChCE,GAAqBA,EAAkB,eACzCD,EAAYD,EAAIE,EAAkB,YAAY,GAEhD,IAAMC,EAAsCC,EAAA,CAC1C,MAAO,WACJH,GAEQI,EAAS,IAAiC,CACrD,GAAM,CAAC,IAAAC,EAAK,UAAAC,EAAW,MAAAC,CAAK,EAAIL,EAChC,MAAO,CACL,IAAK,CACH,IAAK,IAAMG,EACX,QAASA,EAAI,QACb,MAAAE,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAIF,EAAI,OAAO,EAClC,CACF,EACA,aAAc,CACZ,IAAK,IAAMC,EACX,QAASA,EAAU,QACnB,MAAAC,EACA,YAAa,CACX,UAAW,GACX,gBAAiB,IAAID,EAAU,OAAO,EACxC,CACF,CACF,CACF,EClCA,IAAME,EAAWC","names":["externalVue","o","globalVal","win","globalLib","EMPShareGlobalVal","libs","__spreadValues","shared","Vue","VueRouter","scope","external","externalVue"]}