mirror of
https://github.com/nocobase/nocobase
synced 2024-11-15 16:36:56 +00:00
d76e8fb87f
* refactor: update umi version 3.x to version 4.x
* refactor: update react-router-dom version to 6.x
* refactor(react-router-dom): change Layout Component `props.children` to `<Outlet />`
* refactor(react-router-dom): change <Route /> props and <RouteSwitch /> correct
* refactor(react-router-dom): replace `<Redirect />` to `<Navigate replace />`
* refactor(react-router-dom): replace `useHistory` to `useNavigate`
* refactor(react-router-dom): replace `useRouteMatch` to `useParams`
* refactor(react-router-dom & dumi): fix <RouteSwitch /> & umi document bug
* refactor(react-router-dom): `useRoutes` Optimize `<RouteSwitch />` code
* refactor(react-router-dom): update `Route` types and docs
* refactor(react-router-dom): optimize RouteSwitch code
* refactor(react-router-dom): `useLocation` no generics type
* refactor(react-router-dom): add `less v3.9.0` to `resolutions` to solve the error of `gulp-less`
* refactor(react-router-dom): fix `<RouteSwitch />` `props.routes` as an array is not handled
* chore: upgrade `dumi` and refactor docs
* fix: completed code review, add `targets` to solve browser compatibility & removed `chainWebpack`
* refactor(dumi): upgraded dumi under `packages/core/client`
* refactor(dumi): delete `packages/core/dumi-theme-nocobase`
* refactor(dumi): degrade `react` & replace `dumi-theme-antd` to `dumi-theme-nocobase`
* refactor(dumi): solve conflicts between multiple dumi applications
* fix: login page error in react 17
* refactor(dumi): remove less resolutions
* refactor(dumi): umi add `msfu: true` config
* fix: merge bug
* fix: self code review
* fix: code reivew and test bug
* refactor: upgrade react to 18
* refactor: degrade react types to 17
* chore: fix ci error
* fix: support routerBase & fix workflow page params
* fix(doc): menu externel link
* fix: build error
* fix: delete
* fix: vitest error
* fix: react-router new code replace
* fix: vitest markdown error
* fix: title is none when refresh
* fix: merge error
* fix: sidebar width is wrong
* fix: useProps error
* fix: side-menu-width
* fix: menu selectId is wrong & useProps is string
* fix: menu selected first default & side menu hide when change
* fix: test error & v0.10 change log
* fix: new compnent doc modify
* fix: set umi `fastRefresh=false`
* refactor: application v2
* fix: improve code
* fix: bug
* fix: page = 0 error
* fix: workflow navigate error
* feat: plugin manager
* fix: afterAdd
* feat: update docs
* feat: update docs
* fix: page tab change not work
* fix: login redirect query param doesn't work
* fix: bug and doc
* feat: update docs
* fix: ci error
* fix: merge main
* feat: update docs
* feat: update docs
* feat: update docs
* chore(versions): 😊 publish v0.10.0-alpha.1
* fix: translations
* chore: backend node test max old space size
* docs: add useSearchParams
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: ChengLei Shao <chareice@live.com>
100 lines
2.9 KiB
JavaScript
100 lines
2.9 KiB
JavaScript
const { existsSync } = require('fs');
|
|
const { resolve, sep } = require('path');
|
|
const packageJson = require('./package.json');
|
|
const fs = require('fs');
|
|
const glob = require('glob');
|
|
|
|
console.log('VERSION: ', packageJson.version);
|
|
|
|
function getUmiConfig() {
|
|
const { APP_PORT, API_BASE_URL } = process.env;
|
|
const API_BASE_PATH = process.env.API_BASE_PATH || '/api/';
|
|
const PROXY_TARGET_URL = process.env.PROXY_TARGET_URL || `http://127.0.0.1:${APP_PORT}`;
|
|
const LOCAL_STORAGE_BASE_URL = process.env.LOCAL_STORAGE_BASE_URL || '/storage/uploads/';
|
|
|
|
function getLocalStorageProxy() {
|
|
if (LOCAL_STORAGE_BASE_URL.startsWith('http')) {
|
|
return {};
|
|
}
|
|
|
|
return {
|
|
[LOCAL_STORAGE_BASE_URL]: {
|
|
target: PROXY_TARGET_URL,
|
|
changeOrigin: true,
|
|
},
|
|
};
|
|
}
|
|
|
|
return {
|
|
alias: getPackagePaths().reduce((memo, item) => {
|
|
memo[item[0]] = item[1]
|
|
return memo
|
|
}, {}),
|
|
define: {
|
|
'process.env.API_BASE_URL': API_BASE_URL || API_BASE_PATH,
|
|
'process.env.APP_ENV': process.env.APP_ENV,
|
|
'process.env.VERSION': packageJson.version,
|
|
},
|
|
// only proxy when using `umi dev`
|
|
// if the assets are built, will not proxy
|
|
proxy: {
|
|
[API_BASE_PATH]: {
|
|
target: PROXY_TARGET_URL,
|
|
changeOrigin: true,
|
|
pathRewrite: { [`^${API_BASE_PATH}`]: API_BASE_PATH },
|
|
},
|
|
// for local storage
|
|
...getLocalStorageProxy(),
|
|
},
|
|
};
|
|
}
|
|
|
|
function getNamespace() {
|
|
const content = fs.readFileSync(resolve(process.cwd(), 'package.json'), 'utf-8');
|
|
const json = JSON.parse(content);
|
|
return json.name;
|
|
}
|
|
|
|
function getTsconfigPaths() {
|
|
const content = fs.readFileSync(resolve(process.cwd(), 'tsconfig.json'), 'utf-8');
|
|
const json = JSON.parse(content);
|
|
return json.compilerOptions.paths;
|
|
}
|
|
|
|
function getPackagePaths() {
|
|
const paths = getTsconfigPaths();
|
|
const pkgs = [];
|
|
for (const key in paths) {
|
|
if (Object.hasOwnProperty.call(paths, key)) {
|
|
const dir = paths[key][0];
|
|
if (dir.includes('*')) {
|
|
const files = glob.sync(dir);
|
|
for (const file of files) {
|
|
const dirname = resolve(process.cwd(), file);
|
|
if (existsSync(dirname)) {
|
|
const re = new RegExp(dir.replace('*', '(.+)'));
|
|
const p = dirname.substring(process.cwd().length + 1).split(sep).join('/');
|
|
const match = re.exec(p);
|
|
pkgs.push([key.replace('*', match?.[1]), dirname]);
|
|
}
|
|
}
|
|
} else {
|
|
const dirname = resolve(process.cwd(), dir);
|
|
pkgs.push([key, dirname]);
|
|
}
|
|
}
|
|
}
|
|
return pkgs;
|
|
}
|
|
|
|
function resolveNocobasePackagesAlias(config) {
|
|
const pkgs = getPackagePaths();
|
|
for (const [pkg, dir] of pkgs) {
|
|
config.module.rules.get('ts-in-node_modules').include.add(dir);
|
|
config.resolve.alias.set(pkg, dir);
|
|
}
|
|
}
|
|
|
|
exports.getUmiConfig = getUmiConfig;
|
|
exports.resolveNocobasePackagesAlias = resolveNocobasePackagesAlias;
|