refactor: move default config json files to inner folders

This commit is contained in:
Wesley F. Young 2024-08-12 00:27:14 +08:00
parent ef4dee8886
commit e4a112c329
3 changed files with 119 additions and 122 deletions

View File

@ -1,157 +1,154 @@
// import PreprocessorDirectives from 'unplugin-preprocessor-directives/vite'; // import PreprocessorDirectives from 'unplugin-preprocessor-directives/vite';
import obfuscator from 'rollup-plugin-obfuscator';
import cp from 'vite-plugin-cp'; import cp from 'vite-plugin-cp';
import { UserConfig, defineConfig } from 'vite'; import { defineConfig, PluginOption, UserConfig } from 'vite';
import { resolve } from 'path'; import { resolve } from 'path';
import { PluginOption, Plugin } from 'vite';
import nodeResolve from '@rollup/plugin-node-resolve'; import nodeResolve from '@rollup/plugin-node-resolve';
import { builtinModules } from 'module'; import { builtinModules } from 'module';
import fs from 'node:fs';
import babel from 'vite-plugin-babel'; import babel from 'vite-plugin-babel';
//依赖排除 //依赖排除
const external = ['silk-wasm', 'ws', 'express', 'fluent-ffmpeg', 'log4js', 'qrcode-terminal']; const external = ['silk-wasm', 'ws', 'express', 'fluent-ffmpeg', 'log4js', 'qrcode-terminal'];
const nodeModules = [...builtinModules, builtinModules.map(m => `node:${m}`)].flat(); const nodeModules = [...builtinModules, builtinModules.map(m => `node:${m}`)].flat();
function genCpModule(module: string) { function genCpModule(module: string) {
return { src: `./node_modules/${module}`, dest: `dist/node_modules/${module}`, flatten: false }; return { src: `./node_modules/${module}`, dest: `dist/node_modules/${module}`, flatten: false };
} }
let startScripts: string[] | undefined = undefined; let startScripts: string[] | undefined = undefined;
if (process.env.NAPCAT_BUILDSYS == 'linux') { if (process.env.NAPCAT_BUILDSYS == 'linux') {
if (process.env.NAPCAT_BUILDARCH == 'x64') { if (process.env.NAPCAT_BUILDARCH == 'x64') {
} }
startScripts = ['./script/napcat.sh']; startScripts = ['./script/napcat.sh'];
} else if (process.env.NAPCAT_BUILDSYS == 'win32') { } else if (process.env.NAPCAT_BUILDSYS == 'win32') {
if (process.env.NAPCAT_BUILDARCH == 'x64') { if (process.env.NAPCAT_BUILDARCH == 'x64') {
} }
startScripts = ['./script/BootWay05.ps1', './script/dbghelp.dll']; startScripts = ['./script/BootWay05.ps1', './script/dbghelp.dll'];
} else { } else {
startScripts = ['./script/BootWay05.ps1', './script/dbghelp.dll']; startScripts = ['./script/BootWay05.ps1', './script/dbghelp.dll'];
} }
const FrameworkBaseConfigPlugin: PluginOption[] = [ const FrameworkBaseConfigPlugin: PluginOption[] = [
// PreprocessorDirectives(), // PreprocessorDirectives(),
babel({ babel({
filter: /.*\.(ts|js)$/, filter: /.*\.(ts|js)$/,
babelConfig: { babelConfig: {
babelrc: false, babelrc: false,
configFile: false, configFile: false,
presets: ["@babel/preset-typescript"], presets: ['@babel/preset-typescript'],
plugins: [ plugins: [
//'2018-09', decoratorsBeforeExport: true //'2018-09', decoratorsBeforeExport: true
['@babel/plugin-proposal-decorators', { legacy: true }], ['@babel/plugin-proposal-decorators', { legacy: true }],
'@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-class-properties',
], ],
}, },
}), }),
cp({ cp({
targets: [ targets: [
{ src: './manifest.json', dest: 'dist' }, { src: './manifest.json', dest: 'dist' },
{ src: './src/external/napcat.json', dest: 'dist/config/' }, { src: './src/external/napcat.json', dest: 'dist/config/' },
{ src: './static/', dest: 'dist/static/', flatten: false }, { src: './static/', dest: 'dist/static/', flatten: false },
{ src: './src/external/onebot11.json', dest: 'dist/config/' }, { src: './src/external/onebot11.json', dest: 'dist/config/' },
{ src: './src/framework/liteloader.cjs', dest: 'dist' }, { src: './src/framework/liteloader.cjs', dest: 'dist' },
{ src: './src/framework/napcat.cjs', dest: 'dist' }, { src: './src/framework/napcat.cjs', dest: 'dist' },
{ src: './src/framework/preload.cjs', dest: 'dist' }, { src: './src/framework/preload.cjs', dest: 'dist' },
{ src: './src/framework/renderer.js', dest: 'dist' }, { src: './src/framework/renderer.js', dest: 'dist' },
{ src: './package.json', dest: 'dist' }, { src: './package.json', dest: 'dist' },
{ src: './logo.png', dest: 'dist' }, { src: './logo.png', dest: 'dist' },
//...external.map(genCpModule) //...external.map(genCpModule)
] ],
}), }),
nodeResolve(), nodeResolve(),
]; ];
const ShellBaseConfigPlugin: PluginOption[] = [ const ShellBaseConfigPlugin: PluginOption[] = [
// PreprocessorDirectives(), // PreprocessorDirectives(),
babel({ babel({
filter: /.*\.(ts|js)$/, filter: /.*\.(ts|js)$/,
babelConfig: { babelConfig: {
babelrc: false, babelrc: false,
configFile: false, configFile: false,
presets: ["@babel/preset-typescript"], presets: ['@babel/preset-typescript'],
plugins: [ plugins: [
//'2018-09', decoratorsBeforeExport: true //'2018-09', decoratorsBeforeExport: true
['@babel/plugin-proposal-decorators', { legacy: true }], ['@babel/plugin-proposal-decorators', { legacy: true }],
'@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-class-properties',
], ],
}, },
}), }),
cp({ cp({
targets: [ targets: [
// ...external.map(genCpModule), // ...external.map(genCpModule),
// { src: './src/napcat.json', dest: 'dist/config/' }, // { src: './src/napcat.json', dest: 'dist/config/' },
{ src: './static/', dest: 'dist/static/', flatten: false }, { src: './static/', dest: 'dist/static/', flatten: false },
// { src: './src/onebot11/onebot11.json', dest: 'dist/config/' }, // { src: './src/onebot11/onebot11.json', dest: 'dist/config/' },
{ src: './src/external/napcat.json', dest: 'dist/config/' }, { src: './src/core/external/napcat.json', dest: 'dist/config/' },
{ src: './src/external/onebot11.json', dest: 'dist/config/' }, { src: './src/onebot/external/onebot11.json', dest: 'dist/config/' },
{ src: './package.json', dest: 'dist' }, { src: './package.json', dest: 'dist' },
// { src: './README.md', dest: 'dist' }, // { src: './README.md', dest: 'dist' },
// { src: './logo.png', dest: 'dist/logs' }, // { src: './logo.png', dest: 'dist/logs' },
...(startScripts.map((startScript) => { ...(startScripts.map((startScript) => {
return { src: startScript, dest: 'dist' }; return { src: startScript, dest: 'dist' };
})), })),
] ],
}), }),
nodeResolve(), nodeResolve(),
]; ];
const ShellBaseConfig = () => defineConfig({ const ShellBaseConfig = () => defineConfig({
resolve: { resolve: {
conditions: ['node', 'default'], conditions: ['node', 'default'],
alias: { alias: {
'@/core': resolve(__dirname, './src/core'), '@/core': resolve(__dirname, './src/core'),
'@': resolve(__dirname, './src'), '@': resolve(__dirname, './src'),
'./lib-cov/fluent-ffmpeg': './lib/fluent-ffmpeg', './lib-cov/fluent-ffmpeg': './lib/fluent-ffmpeg',
},
}, },
}, build: {
build: { sourcemap: false,
sourcemap: false, target: 'esnext',
target: 'esnext', minify: false,
minify: false, lib: {
lib: { entry: 'src/shell/napcat.ts',
entry: 'src/shell/napcat.ts', formats: ['es'],
formats: ['es'], fileName: () => 'napcat.mjs',
fileName: () => 'napcat.mjs', },
rollupOptions: {
external: [...nodeModules, ...external],
},
}, },
rollupOptions: {
external: [...nodeModules, ...external]
},
},
}); });
const FrameworkBaseConfig = () => defineConfig({ const FrameworkBaseConfig = () => defineConfig({
resolve: { resolve: {
conditions: ['node', 'default'], conditions: ['node', 'default'],
alias: { alias: {
'@/core': resolve(__dirname, './src/core'), '@/core': resolve(__dirname, './src/core'),
'@': resolve(__dirname, './src'), '@': resolve(__dirname, './src'),
'./lib-cov/fluent-ffmpeg': './lib/fluent-ffmpeg', './lib-cov/fluent-ffmpeg': './lib/fluent-ffmpeg',
},
}, },
}, build: {
build: { sourcemap: false,
sourcemap: false, target: 'esnext',
target: 'esnext', minify: false,
minify: false, lib: {
lib: { entry: 'src/framework/napcat.ts',
entry: "src/framework/napcat.ts", formats: ['es'],
formats: ['es'], fileName: () => 'napcat.mjs',
fileName: () => 'napcat.mjs', },
rollupOptions: {
external: [...nodeModules, ...external],
},
}, },
rollupOptions: {
external: [...nodeModules, ...external]
},
},
}); });
export default defineConfig(({ mode }): UserConfig => { export default defineConfig(({ mode }): UserConfig => {
if (mode === 'shell') { if (mode === 'shell') {
return { return {
...ShellBaseConfig(), ...ShellBaseConfig(),
plugins: [...ShellBaseConfigPlugin] plugins: [...ShellBaseConfigPlugin],
}; };
} else { } else {
return { return {
...FrameworkBaseConfig(), ...FrameworkBaseConfig(),
plugins: [...FrameworkBaseConfigPlugin], plugins: [...FrameworkBaseConfigPlugin],
}; };
} }
}); });