mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-19 05:05:44 +08:00
Add napiloader scripts and binaries, update Vite config
Introduces napiloader batch scripts and binaries (napiloader.dll, napimain.exe) for Windows integration. Updates vite.config.ts to include napiloader files in the Framework build output and refactors plugin target lists for improved distribution packaging.
This commit is contained in:
parent
d76a2170a0
commit
5dc33e78ad
30
napiloader/napiLoader-debug.bat
Normal file
30
napiloader/napiLoader-debug.bat
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
@echo off
|
||||||
|
chcp 65001
|
||||||
|
set NAPCAT_INJECT_PATH=%cd%\napiloader.dll
|
||||||
|
set NAPCAT_LAUNCHER_PATH=%cd%\napimain.exe
|
||||||
|
set NAPCAT_MAIN_PATH=%cd%\nativeLoader.cjs
|
||||||
|
set NAPCAT_DEBUG_CONSOLE=1
|
||||||
|
:loop_read
|
||||||
|
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\QQ" /v "UninstallString"') do (
|
||||||
|
set "RetString=%%~b"
|
||||||
|
goto :napcat_boot
|
||||||
|
)
|
||||||
|
|
||||||
|
:napcat_boot
|
||||||
|
for %%a in ("%RetString%") do (
|
||||||
|
set "pathWithoutUninstall=%%~dpa"
|
||||||
|
)
|
||||||
|
|
||||||
|
set "QQPath=%pathWithoutUninstall%QQ.exe"
|
||||||
|
|
||||||
|
if not exist "%QQpath%" (
|
||||||
|
echo provided QQ path is invalid
|
||||||
|
pause
|
||||||
|
exit /b
|
||||||
|
)
|
||||||
|
|
||||||
|
set NAPCAT_MAIN_PATH=%NAPCAT_MAIN_PATH:\=/%
|
||||||
|
|
||||||
|
"%NAPCAT_LAUNCHER_PATH%" "%QQPath%" "%NAPCAT_INJECT_PATH%" "%NAPCAT_MAIN_PATH%"
|
||||||
|
|
||||||
|
pause
|
||||||
27
napiloader/napiLoader.bat
Normal file
27
napiloader/napiLoader.bat
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
@echo off
|
||||||
|
chcp 65001
|
||||||
|
set NAPCAT_INJECT_PATH=%cd%\napiloader.dll
|
||||||
|
set NAPCAT_LAUNCHER_PATH=%cd%\napimain.exe
|
||||||
|
set NAPCAT_MAIN_PATH=%cd%\nativeLoader.cjs
|
||||||
|
:loop_read
|
||||||
|
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\QQ" /v "UninstallString"') do (
|
||||||
|
set "RetString=%%~b"
|
||||||
|
goto :napcat_boot
|
||||||
|
)
|
||||||
|
|
||||||
|
:napcat_boot
|
||||||
|
for %%a in ("%RetString%") do (
|
||||||
|
set "pathWithoutUninstall=%%~dpa"
|
||||||
|
)
|
||||||
|
|
||||||
|
set "QQPath=%pathWithoutUninstall%QQ.exe"
|
||||||
|
|
||||||
|
if not exist "%QQpath%" (
|
||||||
|
echo provided QQ path is invalid
|
||||||
|
pause
|
||||||
|
exit /b
|
||||||
|
)
|
||||||
|
|
||||||
|
set NAPCAT_MAIN_PATH=%NAPCAT_MAIN_PATH:\=/%
|
||||||
|
|
||||||
|
start "" "%NAPCAT_LAUNCHER_PATH%" "%QQPath%" "%NAPCAT_INJECT_PATH%" "%NAPCAT_MAIN_PATH%"
|
||||||
BIN
napiloader/napiloader.dll
Normal file
BIN
napiloader/napiloader.dll
Normal file
Binary file not shown.
BIN
napiloader/napimain.exe
Normal file
BIN
napiloader/napimain.exe
Normal file
Binary file not shown.
347
vite.config.ts
347
vite.config.ts
@ -6,204 +6,205 @@ import { builtinModules } from 'module';
|
|||||||
import { performanceMonitorPlugin } from './vite-plugin-performance-monitor';
|
import { performanceMonitorPlugin } from './vite-plugin-performance-monitor';
|
||||||
//依赖排除
|
//依赖排除
|
||||||
const external = [
|
const external = [
|
||||||
'silk-wasm',
|
'silk-wasm',
|
||||||
'ws',
|
'ws',
|
||||||
'express'
|
'express'
|
||||||
];
|
];
|
||||||
const nodeModules = [...builtinModules, builtinModules.map((m) => `node:${m}`)].flat();
|
const nodeModules = [...builtinModules, builtinModules.map((m) => `node:${m}`)].flat();
|
||||||
|
|
||||||
let startScripts: string[] | undefined = undefined;
|
let startScripts: string[] | undefined = undefined;
|
||||||
if (process.env.NAPCAT_BUILDSYS == 'linux') {
|
if (process.env.NAPCAT_BUILDSYS == 'linux') {
|
||||||
startScripts = [];
|
startScripts = [];
|
||||||
} else if (process.env.NAPCAT_BUILDSYS == 'win32') {
|
} else if (process.env.NAPCAT_BUILDSYS == 'win32') {
|
||||||
startScripts = ['./script/KillQQ.bat'];
|
startScripts = ['./script/KillQQ.bat'];
|
||||||
} else {
|
} else {
|
||||||
startScripts = ['./script/KillQQ.bat'];
|
startScripts = ['./script/KillQQ.bat'];
|
||||||
}
|
}
|
||||||
|
|
||||||
const UniversalBaseConfigPlugin: PluginOption[] = [
|
const UniversalBaseConfigPlugin: PluginOption[] = [
|
||||||
// performanceMonitorPlugin({
|
// performanceMonitorPlugin({
|
||||||
// enabled: process.env.NODE_ENV !== 'production',
|
// enabled: process.env.NODE_ENV !== 'production',
|
||||||
// exclude: [/node_modules/, /\.min\./, /performance-monitor/],
|
// exclude: [/node_modules/, /\.min\./, /performance-monitor/],
|
||||||
// include: [/\.ts$/, /\.js$/]
|
// include: [/\.ts$/, /\.js$/]
|
||||||
// }),
|
// }),
|
||||||
cp({
|
cp({
|
||||||
targets: [
|
targets: [
|
||||||
{ src: './manifest.json', dest: 'dist' },
|
{ src: './manifest.json', dest: 'dist' },
|
||||||
{ src: './src/core/external/napcat.json', dest: 'dist/config/' },
|
{ src: './src/core/external/napcat.json', dest: 'dist/config/' },
|
||||||
{ src: './src/native/', dest: 'dist/native', flatten: false },
|
{ src: './src/native/', dest: 'dist/native', flatten: false },
|
||||||
{ src: './napcat.webui/dist/', dest: 'dist/static/', flatten: false },
|
{ src: './napcat.webui/dist/', dest: 'dist/static/', flatten: false },
|
||||||
{ 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' },
|
||||||
{ src: './launcher/', dest: 'dist', flatten: true },
|
{ src: './launcher/', dest: 'dist', flatten: true },
|
||||||
...startScripts.map((startScript) => {
|
...startScripts.map((startScript) => {
|
||||||
return { src: startScript, dest: 'dist' };
|
return { src: startScript, dest: 'dist' };
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
nodeResolve(),
|
nodeResolve(),
|
||||||
];
|
];
|
||||||
|
|
||||||
const FrameworkBaseConfigPlugin: PluginOption[] = [
|
const FrameworkBaseConfigPlugin: PluginOption[] = [
|
||||||
// performanceMonitorPlugin({
|
// performanceMonitorPlugin({
|
||||||
// enabled: process.env.NODE_ENV !== 'production',
|
// enabled: process.env.NODE_ENV !== 'production',
|
||||||
// exclude: [/node_modules/, /\.min\./, /performance-monitor/],
|
// exclude: [/node_modules/, /\.min\./, /performance-monitor/],
|
||||||
// include: [/\.ts$/, /\.js$/]
|
// include: [/\.ts$/, /\.js$/]
|
||||||
// }),
|
// }),
|
||||||
cp({
|
cp({
|
||||||
targets: [
|
targets: [
|
||||||
{ src: './src/native/', dest: 'dist/native', flatten: false },
|
{ src: './napiloader/', dest: 'dist', flatten: true },
|
||||||
{ src: './manifest.json', dest: 'dist' },
|
{ src: './src/native/', dest: 'dist/native', flatten: false },
|
||||||
{ src: './src/core/external/napcat.json', dest: 'dist/config/' },
|
{ src: './manifest.json', dest: 'dist' },
|
||||||
{ src: './napcat.webui/dist/', dest: 'dist/static/', flatten: false },
|
{ src: './src/core/external/napcat.json', dest: 'dist/config/' },
|
||||||
{ src: './src/framework/liteloader.cjs', dest: 'dist' },
|
{ src: './napcat.webui/dist/', dest: 'dist/static/', flatten: false },
|
||||||
{ src: './src/framework/napcat.cjs', dest: 'dist' },
|
{ src: './src/framework/liteloader.cjs', dest: 'dist' },
|
||||||
{ src: './src/framework/nativeLoader.cjs', dest: 'dist' },
|
{ src: './src/framework/napcat.cjs', dest: 'dist' },
|
||||||
{ src: './src/framework/preload.cjs', dest: 'dist' },
|
{ src: './src/framework/nativeLoader.cjs', dest: 'dist' },
|
||||||
{ src: './src/framework/renderer.js', dest: 'dist' },
|
{ src: './src/framework/preload.cjs', dest: 'dist' },
|
||||||
{ src: './package.json', dest: 'dist' },
|
{ src: './src/framework/renderer.js', dest: 'dist' },
|
||||||
{ src: './logo.png', dest: 'dist' },
|
{ src: './package.json', dest: 'dist' },
|
||||||
],
|
{ src: './logo.png', dest: 'dist' },
|
||||||
}),
|
],
|
||||||
nodeResolve(),
|
}),
|
||||||
|
nodeResolve(),
|
||||||
];
|
];
|
||||||
|
|
||||||
const ShellBaseConfigPlugin: PluginOption[] = [
|
const ShellBaseConfigPlugin: PluginOption[] = [
|
||||||
// performanceMonitorPlugin({
|
// performanceMonitorPlugin({
|
||||||
// enabled: process.env.NODE_ENV !== 'production',
|
// enabled: process.env.NODE_ENV !== 'production',
|
||||||
// exclude: [/node_modules/, /\.min\./, /performance-monitor/],
|
// exclude: [/node_modules/, /\.min\./, /performance-monitor/],
|
||||||
// include: [/\.ts$/, /\.js$/]
|
// include: [/\.ts$/, /\.js$/]
|
||||||
// }),
|
// }),
|
||||||
cp({
|
cp({
|
||||||
targets: [
|
targets: [
|
||||||
{ src: './src/native/', dest: 'dist/native', flatten: false },
|
{ src: './src/native/', dest: 'dist/native', flatten: false },
|
||||||
{ src: './napcat.webui/dist/', dest: 'dist/static/', flatten: false },
|
{ src: './napcat.webui/dist/', dest: 'dist/static/', flatten: false },
|
||||||
{ src: './src/core/external/napcat.json', dest: 'dist/config/' },
|
{ src: './src/core/external/napcat.json', dest: 'dist/config/' },
|
||||||
{ src: './package.json', dest: 'dist' },
|
{ src: './package.json', dest: 'dist' },
|
||||||
{ src: './launcher/', dest: 'dist', flatten: true },
|
{ src: './launcher/', dest: 'dist', flatten: true },
|
||||||
...startScripts.map((startScript) => {
|
...startScripts.map((startScript) => {
|
||||||
return { src: startScript, dest: 'dist' };
|
return { src: startScript, dest: 'dist' };
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
nodeResolve(),
|
nodeResolve(),
|
||||||
];
|
];
|
||||||
const UniversalBaseConfig = () =>
|
const UniversalBaseConfig = () =>
|
||||||
defineConfig({
|
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'),
|
||||||
'@webapi': resolve(__dirname, './src/webui/src'),
|
'@webapi': resolve(__dirname, './src/webui/src'),
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
sourcemap: false,
|
||||||
|
target: 'esnext',
|
||||||
|
minify: false,
|
||||||
|
lib: {
|
||||||
|
entry: {
|
||||||
|
napcat: 'src/universal/napcat.ts',
|
||||||
|
'audio-worker': 'src/common/audio-worker.ts',
|
||||||
|
'worker/conoutSocketWorker': 'src/pty/worker/conoutSocketWorker.ts',
|
||||||
},
|
},
|
||||||
build: {
|
formats: ['es'],
|
||||||
sourcemap: false,
|
fileName: (_, entryName) => `${entryName}.mjs`,
|
||||||
target: 'esnext',
|
},
|
||||||
minify: false,
|
rollupOptions: {
|
||||||
lib: {
|
external: [...nodeModules, ...external],
|
||||||
entry: {
|
},
|
||||||
napcat: 'src/universal/napcat.ts',
|
},
|
||||||
'audio-worker': 'src/common/audio-worker.ts',
|
});
|
||||||
'worker/conoutSocketWorker': 'src/pty/worker/conoutSocketWorker.ts',
|
|
||||||
},
|
|
||||||
formats: ['es'],
|
|
||||||
fileName: (_, entryName) => `${entryName}.mjs`,
|
|
||||||
},
|
|
||||||
rollupOptions: {
|
|
||||||
external: [...nodeModules, ...external],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const ShellBaseConfig = () =>
|
const ShellBaseConfig = () =>
|
||||||
defineConfig({
|
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'),
|
||||||
'@webapi': resolve(__dirname, './src/webui/src'),
|
'@webapi': resolve(__dirname, './src/webui/src'),
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
sourcemap: false,
|
||||||
|
target: 'esnext',
|
||||||
|
minify: false,
|
||||||
|
lib: {
|
||||||
|
entry: {
|
||||||
|
napcat: 'src/shell/napcat.ts',
|
||||||
|
'audio-worker': 'src/common/audio-worker.ts',
|
||||||
|
'worker/conoutSocketWorker': 'src/pty/worker/conoutSocketWorker.ts',
|
||||||
},
|
},
|
||||||
build: {
|
formats: ['es'],
|
||||||
sourcemap: false,
|
fileName: (_, entryName) => `${entryName}.mjs`,
|
||||||
target: 'esnext',
|
},
|
||||||
minify: false,
|
rollupOptions: {
|
||||||
lib: {
|
external: [...nodeModules, ...external],
|
||||||
entry: {
|
},
|
||||||
napcat: 'src/shell/napcat.ts',
|
},
|
||||||
'audio-worker': 'src/common/audio-worker.ts',
|
});
|
||||||
'worker/conoutSocketWorker': 'src/pty/worker/conoutSocketWorker.ts',
|
|
||||||
},
|
|
||||||
formats: ['es'],
|
|
||||||
fileName: (_, entryName) => `${entryName}.mjs`,
|
|
||||||
},
|
|
||||||
rollupOptions: {
|
|
||||||
external: [...nodeModules, ...external],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const FrameworkBaseConfig = () =>
|
const FrameworkBaseConfig = () =>
|
||||||
defineConfig({
|
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'),
|
||||||
'@webapi': resolve(__dirname, './src/webui/src'),
|
'@webapi': resolve(__dirname, './src/webui/src'),
|
||||||
},
|
},
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
sourcemap: false,
|
||||||
|
target: 'esnext',
|
||||||
|
minify: false,
|
||||||
|
lib: {
|
||||||
|
entry: {
|
||||||
|
napcat: 'src/framework/napcat.ts',
|
||||||
|
'audio-worker': 'src/common/audio-worker.ts',
|
||||||
|
'worker/conoutSocketWorker': 'src/pty/worker/conoutSocketWorker.ts',
|
||||||
},
|
},
|
||||||
build: {
|
formats: ['es'],
|
||||||
sourcemap: false,
|
fileName: (_, entryName) => `${entryName}.mjs`,
|
||||||
target: 'esnext',
|
},
|
||||||
minify: false,
|
rollupOptions: {
|
||||||
lib: {
|
external: [...nodeModules, ...external],
|
||||||
entry: {
|
},
|
||||||
napcat: 'src/framework/napcat.ts',
|
},
|
||||||
'audio-worker': 'src/common/audio-worker.ts',
|
});
|
||||||
'worker/conoutSocketWorker': 'src/pty/worker/conoutSocketWorker.ts',
|
|
||||||
},
|
|
||||||
formats: ['es'],
|
|
||||||
fileName: (_, entryName) => `${entryName}.mjs`,
|
|
||||||
},
|
|
||||||
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 if (mode == 'universal') {
|
} else if (mode == 'universal') {
|
||||||
return {
|
return {
|
||||||
...UniversalBaseConfig(),
|
...UniversalBaseConfig(),
|
||||||
plugins: [...UniversalBaseConfigPlugin],
|
plugins: [...UniversalBaseConfigPlugin],
|
||||||
};
|
};
|
||||||
} else if (mode == 'shell-analysis') {
|
} else if (mode == 'shell-analysis') {
|
||||||
return {
|
return {
|
||||||
...ShellBaseConfig(),
|
...ShellBaseConfig(),
|
||||||
plugins: [
|
plugins: [
|
||||||
performanceMonitorPlugin({
|
performanceMonitorPlugin({
|
||||||
exclude: [/node_modules/, /\.min\./, /performance-monitor\.ts$/, /packet/],
|
exclude: [/node_modules/, /\.min\./, /performance-monitor\.ts$/, /packet/],
|
||||||
include: [/\.ts$/, /\.js$/]
|
include: [/\.ts$/, /\.js$/]
|
||||||
}),
|
}),
|
||||||
...ShellBaseConfigPlugin
|
...ShellBaseConfigPlugin
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
} else
|
} else
|
||||||
return {
|
return {
|
||||||
...FrameworkBaseConfig(),
|
...FrameworkBaseConfig(),
|
||||||
plugins: [...FrameworkBaseConfigPlugin],
|
plugins: [...FrameworkBaseConfigPlugin],
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user