fix: build

This commit is contained in:
手瓜一十雪 2024-11-16 11:44:23 +08:00
parent 25751b8149
commit bd1faccaa8
2 changed files with 52 additions and 44 deletions

View File

@ -11,8 +11,12 @@ const ALLOW_SAMPLE_RATE = [8000, 12000, 16000, 24000, 32000, 44100, 48000];
const EXIT_CODES = [0, 255]; const EXIT_CODES = [0, 255];
const FFMPEG_PATH = process.env.FFMPEG_PATH ?? 'ffmpeg'; const FFMPEG_PATH = process.env.FFMPEG_PATH ?? 'ffmpeg';
async function getWorkerPath() {
return new URL('./audio-worker.mjs', import.meta.url).href;
}
const piscina = new Piscina<EncodeArgs, EncodeResult>({ const piscina = new Piscina<EncodeArgs, EncodeResult>({
filename: new URL('./audio-worker.mjs', import.meta.url).href, filename: await getWorkerPath(),
}); });
async function guessDuration(pttPath: string, logger: LogWrapper) { async function guessDuration(pttPath: string, logger: LogWrapper) {

View File

@ -4,7 +4,7 @@ import { resolve } from 'path';
import nodeResolve from '@rollup/plugin-node-resolve'; import nodeResolve from '@rollup/plugin-node-resolve';
import { builtinModules } from 'module'; import { builtinModules } from 'module';
//依赖排除 //依赖排除
const external = ['silk-wasm', 'ws', 'express', 'qrcode-terminal', 'fluent-ffmpeg']; const external = ['silk-wasm', 'ws', 'express', 'qrcode-terminal', 'fluent-ffmpeg', 'piscina'];
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 };
@ -50,8 +50,7 @@ const ShellBaseConfigPlugin: PluginOption[] = [
nodeResolve(), nodeResolve(),
]; ];
const ShellBaseConfig = () => const ShellBaseConfig = () => defineConfig({
defineConfig({
resolve: { resolve: {
conditions: ['node', 'default'], conditions: ['node', 'default'],
alias: { alias: {
@ -65,18 +64,20 @@ const ShellBaseConfig = () =>
target: 'esnext', target: 'esnext',
minify: false, minify: false,
lib: { lib: {
entry: 'src/shell/napcat.ts', entry: {
'napcat': 'src/shell/napcat.ts',
'audio-worker': 'src/common/audio-worker.ts',
},
formats: ['es'], formats: ['es'],
fileName: () => 'napcat.mjs', fileName: (_, entryName) => `${entryName}.mjs`,
}, },
rollupOptions: { rollupOptions: {
external: [...nodeModules, ...external], external: [...nodeModules, ...external],
}, },
}, },
}); });
const FrameworkBaseConfig = () => const FrameworkBaseConfig = () => defineConfig({
defineConfig({
resolve: { resolve: {
conditions: ['node', 'default'], conditions: ['node', 'default'],
alias: { alias: {
@ -90,15 +91,18 @@ const FrameworkBaseConfig = () =>
target: 'esnext', target: 'esnext',
minify: false, minify: false,
lib: { lib: {
entry: 'src/framework/napcat.ts', entry: {
'napcat': 'src/framework/napcat.ts',
'audio-worker': 'src/common/audio-worker.ts',
},
formats: ['es'], formats: ['es'],
fileName: () => 'napcat.mjs', fileName: (_, entryName) => `${entryName}.mjs`,
}, },
rollupOptions: { rollupOptions: {
external: [...nodeModules, ...external], external: [...nodeModules, ...external],
}, },
}, },
}); });
export default defineConfig(({ mode }): UserConfig => { export default defineConfig(({ mode }): UserConfig => {
if (mode === 'shell') { if (mode === 'shell') {