提交 605a0e56 authored 作者: xiejiang's avatar xiejiang

feat: 新增模块联邦ts提示类型

上级 acdab888
import type { PackageType as PackageType_0,RemoteKeys as RemoteKeys_0 } from './remote/apis.d.ts';
declare module "@module-federation/runtime" {
type RemoteKeys = RemoteKeys_0;
type PackageType<T, Y=any> = T extends RemoteKeys_0 ? PackageType_0<T> :
Y ;
export function loadRemote<T extends RemoteKeys,Y>(packageName: T): Promise<PackageType<T, Y>>;
export function loadRemote<T extends string,Y>(packageName: T): Promise<PackageType<T, Y>>;
}
declare module "@module-federation/enhanced/runtime" {
type RemoteKeys = RemoteKeys_0;
type PackageType<T, Y=any> = T extends RemoteKeys_0 ? PackageType_0<T> :
Y ;
export function loadRemote<T extends RemoteKeys,Y>(packageName: T): Promise<PackageType<T, Y>>;
export function loadRemote<T extends string,Y>(packageName: T): Promise<PackageType<T, Y>>;
}
declare module "@module-federation/runtime-tools" {
type RemoteKeys = RemoteKeys_0;
type PackageType<T, Y=any> = T extends RemoteKeys_0 ? PackageType_0<T> :
Y ;
export function loadRemote<T extends RemoteKeys,Y>(packageName: T): Promise<PackageType<T, Y>>;
export function loadRemote<T extends string,Y>(packageName: T): Promise<PackageType<T, Y>>;
}
\ No newline at end of file
export type RemoteKeys = 'remote/home';
type PackageType<T> = T extends 'remote/home' ? typeof import('remote/home') :any;
\ No newline at end of file
declare const _default: import("vue").DefineComponent<{
count: number;
}, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "increase"[], "increase", import("vue").PublicProps, Readonly<{
count: number;
}> & Readonly<{
onIncrease?: ((...args: any[]) => any) | undefined;
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
export * from './compiled-types/src/views/home/but';
export { default } from './compiled-types/src/views/home/but';
\ No newline at end of file
......@@ -2,7 +2,7 @@
* @Author: zengzhe
* @Date: 2024-12-27 11:54:24
* @LastEditors: xiejiang
* @LastEditTime: 2025-02-04 17:52:39
* @LastEditTime: 2025-03-04 10:57:39
* @Description:
*/
import { pluginBabel } from '@rsbuild/plugin-babel'
......@@ -13,6 +13,7 @@ import { pluginTypeCheck } from '@rsbuild/plugin-type-check'
import { pluginSvgSpriteLoader } from 'rsbuild-plugin-svg-sprite-loader'
import AutoImport from 'unplugin-auto-import/rspack'
import Components from 'unplugin-vue-components/rspack'
import { pluginModuleFederation } from '@module-federation/rsbuild-plugin'
import { TDesignResolver } from 'unplugin-vue-components/resolvers'
import { join } from 'path'
export const createPlugins = () => {
......@@ -21,6 +22,18 @@ export const createPlugins = () => {
pluginBabel({
include: /\.(?:jsx|tsx)$/
}),
pluginModuleFederation({
name: 'master',
remotes: {
remote: 'remote@http://localhost:5174/mf-manifest.json'
},
shared: {
lodash: {
singleton: true,
eager: true
}
}
}),
pluginVue(),
pluginVueJsx(),
pluginLess(),
......@@ -56,20 +69,20 @@ export const createPlugins = () => {
})
]
}
},
moduleFederation: {
options: {
name: 'web-',
remotes: {
remote: 'remote@http://localhost:5174/remoteEntry.js'
},
shared: {
vue: {
eager: true,
singleton: true
}
}
}
}
// moduleFederation: {
// options: {
// name: 'web-',
// remotes: {
// remote: 'remote@http://localhost:5174/remoteEntry.js'
// },
// shared: {
// vue: {
// eager: true,
// singleton: true
// }
// }
// }
// }
}
}
......@@ -30,6 +30,8 @@
"preinstall": "npx only-allow pnpm"
},
"dependencies": {
"@module-federation/enhanced": "^0.10.0",
"@module-federation/rsbuild-plugin": "^0.10.0",
"@types/vuedraggable": "^2.24.0",
"@vueuse/core": "^11.1.0",
"@wangeditor/editor": "^5.1.23",
......
差异被折叠。
......@@ -2,7 +2,7 @@
* @Author: zengzhe
* @Date: 2024-12-27 11:48:34
* @LastEditors: xiejiang
* @LastEditTime: 2025-02-04 17:45:08
* @LastEditTime: 2025-03-04 14:12:00
* @Description:
*/
import { resolve } from 'path'
......@@ -43,7 +43,7 @@ export default defineConfig({
},
plugins: createPlugins().plugins,
tools: createPlugins().tools,
moduleFederation: createPlugins().moduleFederation,
// moduleFederation: createPlugins().moduleFederation,
performance: {
removeConsole: true
}
......
......@@ -10,7 +10,7 @@ import qs from 'qs'
import { tryHideFullScreenLoading } from '@/config/serviceLoading'
import { LOGIN_URL } from '@/config'
import { MessagePlugin } from 'tdesign-vue-next'
import { ResultData } from 'src/api/interface'
import { ResultData } from '@/api/interface'
import { ResultEnum } from '@/enums/httpEnum'
import { checkStatus } from './helper/checkStatus'
import { useUserStore } from '@/stores/modules/user'
......
......@@ -6,7 +6,7 @@
* @FilePath: \admin-web\src\components\PageContainer\interface\index.ts
* @Description: PageContainer组件类型定义
*/
import type { filterItemProp } from 'src/components/PageFilters/interface/index'
import type { filterItemProp } from '@/components/PageFilters/interface/index'
import type { PrimaryTableCol, TableProps } from 'tdesign-vue-next'
export interface PageResult {
......
......@@ -2,7 +2,7 @@
* @Author: xiejiang
* @Date: 2024-11-05 10:14:56
* @LastEditors: xiejiang
* @LastEditTime: 2025-02-04 17:19:13
* @LastEditTime: 2025-03-04 11:02:32
* @Description: 首页
* Copyright(c)2024 by 好老师教育科技有限公司 All right Reserved.
-->
......@@ -37,7 +37,8 @@
</div>
<img :src="homeImg" class="mt-[80px]" width="502" alt="" />
</div> -->
<RemoteButton />
<DetailTable />
<RemoteButton :count="count" @increase="count++" />
</template>
<script setup lang="ts" name="home">
......@@ -46,9 +47,12 @@ import { useBasic } from '@/hooks/useBasic'
// import homeImg from '@/assets/images/home-img.png'
// const userStore = useUserStore()
// const userInfo = computed(() => userStore.userInfo)
// import RemoteButton from 'remote/button'
const RemoteButton = defineAsyncComponent(() => import('remote/home'))
const count = ref(1)
const { setMenuSign } = useBasic()
onMounted(() => {
......
......@@ -81,8 +81,8 @@
<script setup lang="tsx">
import { PrimaryTableCol, MessagePlugin } from 'tdesign-vue-next'
import type { filterItemProp } from 'src/components/PageFilters/interface/index'
import type { Pagination } from 'src/components/PageContainer/interface/index'
import type { filterItemProp } from '@/components/PageFilters/interface/index'
import type { Pagination } from '@/components/PageContainer/interface/index'
import { useBasic } from '@/hooks/useBasic'
import MessageBox from '@/utils/messageBox'
import { ResMenu } from '@/api/interface/menu/index'
......
......@@ -69,8 +69,8 @@
<script setup lang="tsx" name="version">
import dayjs from 'dayjs'
import { PrimaryTableCol, MessagePlugin } from 'tdesign-vue-next'
import type { filterItemProp } from 'src/components/PageFilters/interface/index'
import type { Pagination } from 'src/components/PageContainer/interface/index'
import type { filterItemProp } from '@/components/PageFilters/interface/index'
import type { Pagination } from '@/components/PageContainer/interface/index'
import { useBasic } from '@/hooks/useBasic'
import MessageBox from '@/utils/messageBox'
import { ResVersion } from '@/api/interface/version/index'
......
......@@ -56,8 +56,8 @@
<script setup lang="tsx" name="users">
import { useRouter } from 'vue-router'
import { PrimaryTableCol, MessagePlugin } from 'tdesign-vue-next'
import type { filterItemProp } from 'src/components/PageFilters/interface/index'
import type { Pagination } from 'src/components/PageContainer/interface/index'
import type { filterItemProp } from '@/components/PageFilters/interface/index'
import type { Pagination } from '@/components/PageContainer/interface/index'
import { statusTxt } from '@/utils/status'
import { buttonPms } from '@/utils'
import { useBasic } from '@/hooks/useBasic'
......
......@@ -22,8 +22,8 @@
"noEmit": true,
"baseUrl": "./",
"paths": {
"@": ["src"],
"@/*": ["src/*"]
"@/*": ["src/*"],
"*": ["./@mf-types/*"]
}
},
"include": [
......@@ -34,7 +34,6 @@
"build/**/*.ts",
"build/**/*.d.ts",
"node_modules/tdesign-vue-next/global.d.ts",
"src/api/modules/dectionory/index.ts",
"src/api/modules/dectionory/index.ts"
],
"exclude": ["node_modules", "dist", "**/*.js"]
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论