5df3b0e75d
* refactor: plugin build and plugin template * refactor: plugins' deps * refactor: plugins bugs * feat: add plugin static middleware * fix: bugs * refactor: frontend plugin add from remote * refactor: delete useless app/client/plugins * fix: requirejs move to local * fix: tests case * refactor: add src/client and src/server dir check * fix: lodash tree shaking * refactor: add BUILD_TIP * refactor: add file size tip * fix: bugs * fix: bug * fix: change china-division * fix: change plugins response * fix: recover dynamicImport * fix: change server src entry * fix: test error * fix: plugins sourcemap => false * fix: production file error * refactor: change build tools to vite and tsup * fix: yarn.lock * fix: bugs * fix: server build bugs * fix: delete .fatherrc.ts * fix: bug * fix: bug * fix: bugs * fix: bugs * fix: bugs * refactor: add plugin d.ts * refactor: delete fatherrc * refactor: delete father scripts * refactor: build bug * fix: bug * fix: deps adjust * fix: add build tips * fix: bug * refactor: ignore plugins when build client * docs: update doc * refactor: docs and build * fix: bug * refactor: build deps * fix: add USER_REMOTE_PLUGIN env * feat: add plugin static cache * feat: add build deps cache * fix: bugs * test: add test * fix: add plugin depden on plugin tip * fix: adjust shouldDevDependencies * fix: deps * fix: ajust deps * fix: mobile style error * fix: map error * fix: test * fix: bug * feat: lodash and dayjs import from themself * feat: @emotion/css 、ahooks and lodash to global * fix: theme-editor plugin error * fix: review * feat: move all plugins' dependencies to devDependencies * feat: change build * feat: add devPlugins * fix: bug * fix: bugs * fix: bugs * fix: bugs * feat: build bugs * fix: bugs * fix: bugs * fix: review * fix: bug * fix: change deps build * fix: bugs * fix: bug * fix: bug * fix: bugs * fix: bug * fix: bug * fix: multi language * fix: dist * fix: cronstrue * fix: getPackageClientStaticUrl * fix: antd dayjs locale * fix: plugin' d.ts import from dist * fix: multi language * fix: build types error * fix: requireModule * fix: plugin lifecycle * fix: client resource * fix: improve code * fix: locale * feat: custom build * fix: require locale * fix: improve code * fix: improve code * fix: skip preset * fix: collection undefined * feat: yarn build * fix: remove enabled * fix: update dockerfile * fix: formily version * docs: update v12 changelog * fix: devDependencies * feat: @nocobase/app * feat: generateAppDir * fix: improve code * fix: 0.11.1-alpha.5 * fix: missing @nocobase/client * fix: error * fix: add .npmignore * feat: upgrade antd version * fix: dependencies * fix: peerDependencies * fix: remove china-division dep * fix: toposort deps * fix: update dockerfile * fix: plugin template * fix: app client outputPath * feat: update docs * fix: nginx server root * fix: storage/.app-dev * fix: getChinaDivisionData * feat: plugin info * feat: update docs * fix: docs menu --------- Co-authored-by: chenos <chenlinxh@gmail.com>
66 lines
2.3 KiB
TypeScript
66 lines
2.3 KiB
TypeScript
import { getUmiConfig, IndexGenerator } from '@nocobase/devtools/umiConfig';
|
|
import path from 'path';
|
|
import { defineConfig } from 'umi';
|
|
|
|
const umiConfig = getUmiConfig();
|
|
|
|
process.env.MFSU_AD = 'none';
|
|
process.env.DID_YOU_KNOW = 'none';
|
|
|
|
const pluginPrefix = (process.env.PLUGIN_PACKAGE_PREFIX || '').split(',').filter((item) => !item.includes('preset')); // 因为现在 preset 是直接引入的,所以不能忽略,如果以后 preset 也是动态插件的形式引入,那么这里可以去掉
|
|
const pluginDirs = 'packages/plugins/,packages/samples/'.split(',').map((item) => path.join(process.cwd(), item));
|
|
|
|
const outputPluginPath = path.join(__dirname, 'src', '.plugins', 'index.ts');
|
|
const indexGenerator = new IndexGenerator(outputPluginPath, pluginDirs);
|
|
indexGenerator.generate();
|
|
|
|
export default defineConfig({
|
|
title: 'Loading...',
|
|
favicons: ['/favicon/favicon.ico'],
|
|
metas: [{ name: 'viewport', content: 'initial-scale=0.1' }],
|
|
links: [
|
|
{ rel: 'apple-touch-icon', size: '180x180', ref: '/favicon/apple-touch-icon.png' },
|
|
{ rel: 'icon', type: 'image/png', size: '32x32', ref: '/favicon/favicon-32x32.png' },
|
|
{ rel: 'icon', type: 'image/png', size: '16x16', ref: '/favicon/favicon-16x16.png' },
|
|
{ rel: 'manifest', href: '/favicon/site.webmanifest' },
|
|
{ rel: 'stylesheet', href: '/global.css' },
|
|
],
|
|
headScripts: ['/browser-checker.js'],
|
|
outputPath: path.resolve(__dirname, '../dist/client'),
|
|
hash: true,
|
|
alias: {
|
|
...umiConfig.alias,
|
|
},
|
|
define: {
|
|
...umiConfig.define,
|
|
'process.env.USE_REMOTE_PLUGIN': process.env.USE_REMOTE_PLUGIN,
|
|
},
|
|
proxy: {
|
|
...umiConfig.proxy,
|
|
},
|
|
fastRefresh: false, // 热更新会导致 Context 丢失,不开启
|
|
mfsu: false,
|
|
esbuildMinifyIIFE: true,
|
|
// srcTranspiler: 'esbuild', // 不行,各种报错
|
|
// mfsu: {
|
|
// esbuild: true // 不行,各种报错
|
|
// },
|
|
// 浏览器兼容性,兼容到 2018 年的浏览器
|
|
targets: {
|
|
chrome: 69,
|
|
edge: 79,
|
|
safari: 12,
|
|
},
|
|
chainWebpack(config, { env }) {
|
|
if (env === 'production') {
|
|
config.plugin('ignore nocobase plugins').use(require('webpack').IgnorePlugin, [
|
|
{
|
|
resourceRegExp: new RegExp(pluginPrefix.join('|')),
|
|
},
|
|
]);
|
|
}
|
|
return config;
|
|
},
|
|
routes: [{ path: '/*', component: 'index' }],
|
|
});
|