43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
|
import fs from 'fs/promises';
|
||
|
import path from 'path';
|
||
|
import { defineConfig } from '@nocobase/build';
|
||
|
|
||
|
const existsSync = require('fs').existsSync;
|
||
|
|
||
|
const client = path.dirname(require.resolve('@nocobase/client/package.json'));
|
||
|
const antd = require.resolve('antd');
|
||
|
|
||
|
export default defineConfig({
|
||
|
afterBuild: async (log) => {
|
||
|
const localeDir = path.resolve(__dirname, './dist/locale');
|
||
|
if (existsSync(localeDir)) {
|
||
|
await fs.rm(localeDir, { recursive: true });
|
||
|
}
|
||
|
|
||
|
log('coping client locale');
|
||
|
await fs.cp(path.resolve(client, 'lib', 'locale'), localeDir, {
|
||
|
recursive: true,
|
||
|
force: true,
|
||
|
});
|
||
|
|
||
|
log('coping antd locale');
|
||
|
const files = await fs.readdir(path.resolve(path.dirname(antd), 'locale'));
|
||
|
await fs.mkdir(path.resolve(localeDir, 'antd'), { recursive: true });
|
||
|
for (const file of files) {
|
||
|
if (path.extname(file) !== '.js') {
|
||
|
continue;
|
||
|
}
|
||
|
const content = require(path.resolve(path.dirname(antd), 'locale', file)).default;
|
||
|
try {
|
||
|
await fs.writeFile(
|
||
|
path.resolve(localeDir, 'antd', file),
|
||
|
`module.exports = ${JSON.stringify(content)}`,
|
||
|
'utf-8',
|
||
|
);
|
||
|
} catch (error) {
|
||
|
log(`skip ${file}`);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
});
|