2022-05-19 00:40:55 +08:00
|
|
|
const { existsSync } = require('fs');
|
|
|
|
const { resolve } = require('path');
|
2022-05-23 18:48:15 +08:00
|
|
|
const packageJson = require('./package.json');
|
2022-06-10 17:46:46 +08:00
|
|
|
const fs = require('fs');
|
2022-05-23 18:48:15 +08:00
|
|
|
|
2022-05-24 22:55:09 +08:00
|
|
|
console.log('VERSION: ', packageJson.version);
|
2022-05-19 00:40:55 +08:00
|
|
|
|
|
|
|
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 {
|
|
|
|
define: {
|
|
|
|
'process.env.API_BASE_URL': API_BASE_URL || API_BASE_PATH,
|
2022-05-23 18:48:15 +08:00
|
|
|
'process.env.APP_ENV': process.env.APP_ENV,
|
2022-05-24 22:57:32 +08:00
|
|
|
'process.env.VERSION': packageJson.version,
|
2022-05-19 00:40:55 +08:00
|
|
|
},
|
|
|
|
// 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(),
|
|
|
|
},
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2022-11-04 21:23:02 +08:00
|
|
|
function getNamespace() {
|
|
|
|
const content = fs.readFileSync(resolve(process.cwd(), 'package.json'), 'utf-8');
|
|
|
|
const json = JSON.parse(content);
|
|
|
|
return json.name;
|
|
|
|
}
|
|
|
|
|
2022-05-19 00:40:55 +08:00
|
|
|
function resolveNocobasePackagesAlias(config) {
|
2022-06-26 07:19:03 +08:00
|
|
|
const coreDir = resolve(process.cwd(), './packages/core');
|
|
|
|
if (!existsSync(coreDir)) {
|
2022-11-04 21:23:02 +08:00
|
|
|
const namespace = getNamespace();
|
|
|
|
console.log('NAMESPACE: ' + namespace);
|
|
|
|
const plugins = fs.readdirSync(resolve(process.cwd(), './packages/plugins'));
|
|
|
|
for (const package of plugins) {
|
|
|
|
const packageSrc = resolve(process.cwd(), './packages/plugins/', package, 'src');
|
|
|
|
if (existsSync(packageSrc)) {
|
|
|
|
config.module.rules.get('ts-in-node_modules').include.add(packageSrc);
|
|
|
|
config.resolve.alias.set(`@${namespace}/plugin-${package}`, packageSrc);
|
|
|
|
}
|
|
|
|
}
|
2022-06-26 07:19:03 +08:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
const cores = fs.readdirSync(coreDir);
|
2022-06-10 17:46:46 +08:00
|
|
|
for (const package of cores) {
|
|
|
|
const packageSrc = resolve(process.cwd(), './packages/core/', package, 'src');
|
|
|
|
if (existsSync(packageSrc)) {
|
|
|
|
config.module.rules.get('ts-in-node_modules').include.add(packageSrc);
|
|
|
|
config.resolve.alias.set(`@nocobase/${package}`, packageSrc);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const plugins = fs.readdirSync(resolve(process.cwd(), './packages/plugins'));
|
|
|
|
for (const package of plugins) {
|
|
|
|
const packageSrc = resolve(process.cwd(), './packages/plugins/', package, 'src');
|
|
|
|
if (existsSync(packageSrc)) {
|
|
|
|
config.module.rules.get('ts-in-node_modules').include.add(packageSrc);
|
|
|
|
config.resolve.alias.set(`@nocobase/plugin-${package}`, packageSrc);
|
|
|
|
}
|
2022-05-19 00:40:55 +08:00
|
|
|
}
|
2022-09-18 14:10:01 +08:00
|
|
|
const samples = fs.readdirSync(resolve(process.cwd(), './packages/samples'));
|
|
|
|
for (const package of samples) {
|
|
|
|
const packageSrc = resolve(process.cwd(), './packages/samples/', package, 'src');
|
|
|
|
if (existsSync(packageSrc)) {
|
|
|
|
config.module.rules.get('ts-in-node_modules').include.add(packageSrc);
|
2022-09-26 14:52:10 +08:00
|
|
|
config.resolve.alias.set(`@nocobase/plugin-sample-${package}`, packageSrc);
|
2022-09-18 14:10:01 +08:00
|
|
|
}
|
|
|
|
}
|
2022-11-03 15:56:27 +08:00
|
|
|
const pros = fs.readdirSync(resolve(process.cwd(), './packages/pro-plugins'));
|
|
|
|
for (const package of pros) {
|
|
|
|
const packageSrc = resolve(process.cwd(), './packages/pro-plugins/', package, 'src');
|
|
|
|
if (existsSync(packageSrc)) {
|
|
|
|
config.module.rules.get('ts-in-node_modules').include.add(packageSrc);
|
|
|
|
config.resolve.alias.set(`@nocobase/plugin-pro-${package}`, packageSrc);
|
|
|
|
}
|
|
|
|
}
|
2022-05-19 00:40:55 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
exports.getUmiConfig = getUmiConfig;
|
|
|
|
exports.resolveNocobasePackagesAlias = resolveNocobasePackagesAlias;
|