| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- * 业务项目仅使用私有 npm 中的 @fskj-admin/shell,禁止回退到本机 platform-shell 源码路径。
- * 框架源码仓库:/Users/qiyuan/workspace_front/front-platform-core_3.0.1-Beta(packages/platform-shell)。
- *
- * 登录/首页/defaultSetting 等留在本仓 src/,其余平台能力走 npm shell。
- */
- import path from 'node:path'
- import {
- createEmptyProjectShellAliases,
- type CreateEmptyProjectShellAliasesOptions
- } from '@fskj-admin/shell/vite'
- export function createProjectShellAliases(options: CreateEmptyProjectShellAliasesOptions = {}) {
- const root = options.projectRoot ?? process.cwd()
- const src = path.join(root, 'src')
- const npmShellSrc = path.join(root, 'node_modules/@fskj-admin/shell/src')
- /** 强制 setAppRouter / getAppRouter 走同一物理文件,避免子路径与 barrel 双实例 */
- const appRouterHolder = path.join(npmShellSrc, 'router/appRouterHolder.ts')
- const createAppRouterModule = path.join(npmShellSrc, 'router/createAppRouter.ts')
- const businessRouterExtension = path.join(npmShellSrc, 'router/businessRouterExtension.ts')
- const homeExtension = path.join(npmShellSrc, 'home/homeExtension.ts')
- const createAdminAppModule = path.join(npmShellSrc, 'bootstrap/createAdminApp.ts')
- const platformOpsRouterExtension = path.join(npmShellSrc, 'router/platformOpsRouterExtension.ts')
- const platformOpsRegister = path.join(npmShellSrc, 'platformops/register.ts')
- const platformOpsEssentialRoutes = path.join(npmShellSrc, 'platformops/essentialRoutes.ts')
- const base = createEmptyProjectShellAliases({
- localShellCandidates: false,
- ...options
- })
- /** 商户登录/注册等业务页须在通用 @shell alias 之前匹配 */
- const merchantOverrides = [
- {
- find: '@shell/router/appRouterHolder',
- replacement: appRouterHolder
- },
- {
- find: '@fskj-admin/shell/router/appRouterHolder',
- replacement: appRouterHolder
- },
- {
- find: '@shell/router/createAppRouter',
- replacement: createAppRouterModule
- },
- {
- find: '@fskj-admin/shell/router/createAppRouter',
- replacement: createAppRouterModule
- },
- {
- find: '@shell/router/businessRouterExtension',
- replacement: businessRouterExtension
- },
- {
- find: '@fskj-admin/shell/router/businessRouterExtension',
- replacement: businessRouterExtension
- },
- {
- find: '@shell/home/homeExtension',
- replacement: homeExtension
- },
- {
- find: '@fskj-admin/shell/home/homeExtension',
- replacement: homeExtension
- },
- {
- find: '@shell/bootstrap/createAdminApp',
- replacement: createAdminAppModule
- },
- {
- find: '@fskj-admin/shell/bootstrap/createAdminApp',
- replacement: createAdminAppModule
- },
- {
- find: '@shell/router/platformOpsRouterExtension',
- replacement: platformOpsRouterExtension
- },
- {
- find: '@fskj-admin/shell/router/platformOpsRouterExtension',
- replacement: platformOpsRouterExtension
- },
- {
- find: '@shell/platformops/register',
- replacement: platformOpsRegister
- },
- {
- find: '@fskj-admin/shell/platformops/register',
- replacement: platformOpsRegister
- },
- {
- find: '@shell/platformops/essentialRoutes',
- replacement: platformOpsEssentialRoutes
- },
- {
- find: '@fskj-admin/shell/platformops/essentialRoutes',
- replacement: platformOpsEssentialRoutes
- },
- {
- find: '@shell/views/user/MerchantLogin.vue',
- replacement: path.join(src, 'views/user/MerchantLogin.vue')
- },
- {
- find: '@shell/views/user/MerchantRegister.vue',
- replacement: path.join(src, 'views/user/MerchantRegister.vue')
- },
- {
- find: '@shell/views/miniprogram/HomeQuickGrid.vue',
- replacement: path.join(src, 'business/views/miniprogram/HomeQuickGrid.vue')
- },
- {
- find: '@/api/setting/homeQuickGrid',
- replacement: path.join(src, 'business/api/setting/homeQuickGrid.ts')
- },
- {
- find: path.join(npmShellSrc, 'api/setting/homeQuickGrid.ts'),
- replacement: path.join(src, 'business/api/setting/homeQuickGrid.ts')
- },
- {
- find: '@/utils/bizSceneExt',
- replacement: path.join(src, 'utils/bizSceneExt.ts')
- },
- {
- find: '@/components/layout/GlobalMainNav.vue',
- replacement: path.join(src, 'components/layout/GlobalMainNav.vue')
- },
- {
- find: '@/utils/formatMainNavLabel',
- replacement: path.join(src, 'utils/formatMainNavLabel.ts')
- }
- ]
- return [...merchantOverrides, ...base]
- }
- /** 组件扫描目录:强制 npm 包,不探测 TravelWebFront 等本地 platform-shell */
- export function resolveProjectShellComponentsDir(projectRoot?: string) {
- const root = projectRoot ?? process.cwd()
- return path.join(root, 'node_modules/@fskj-admin/shell/src/components')
- }
- export type { CreateEmptyProjectShellAliasesOptions as CreateShellAliasesOptions }
|