31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
|
|
/**
|
|||
|
|
* Monorepo 路径修复
|
|||
|
|
*
|
|||
|
|
* Cool Admin 的 LocationUtil.getRunPath() 通过 Error stack trace 中的
|
|||
|
|
* node_modules 位置反推项目根目录。在 pnpm monorepo 中,node_modules
|
|||
|
|
* 被提升到根目录,导致解析到 Neta-monorepo/dist 而非
|
|||
|
|
* Neta-monorepo/packages/backend/dist(或src),使得模块配置无法加载。
|
|||
|
|
*
|
|||
|
|
* 本脚本通过 --require 或 NODE_OPTIONS 在所有模块加载前修补 getRunPath。
|
|||
|
|
*/
|
|||
|
|
const path = require('path');
|
|||
|
|
|
|||
|
|
// 在开发模式(ts-node)下,模块从 src 目录加载
|
|||
|
|
// 在生产模式下,模块从 dist 目录加载
|
|||
|
|
const isDev = process.env.NODE_ENV === 'local' || process.env.NODE_ENV === 'development';
|
|||
|
|
const backendRoot = isDev
|
|||
|
|
? path.resolve(__dirname, 'src')
|
|||
|
|
: path.resolve(__dirname, 'dist');
|
|||
|
|
|
|||
|
|
// 直接加载并修补 LocationUtil 单例
|
|||
|
|
try {
|
|||
|
|
const locationModule = require('@cool-midway/core/dist/util/location');
|
|||
|
|
if (locationModule && locationModule.default) {
|
|||
|
|
locationModule.default.getRunPath = () => backendRoot;
|
|||
|
|
locationModule.default.distPath = backendRoot;
|
|||
|
|
console.log('[monorepo-fix] Cool Admin getRunPath 已修补为:', backendRoot);
|
|||
|
|
}
|
|||
|
|
} catch (e) {
|
|||
|
|
console.warn('[monorepo-fix] 修补失败:', e.message);
|
|||
|
|
}
|