mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
perf: webpack config
This commit is contained in:
parent
5c2612a7ef
commit
97a315cd8a
@ -24,8 +24,8 @@
|
||||
"darwin"
|
||||
],
|
||||
"injects": {
|
||||
"renderer": "./dist/renderer.js",
|
||||
"main": "./dist/main.js",
|
||||
"preload": "./dist/preload.js"
|
||||
"renderer": "./renderer.js",
|
||||
"main": "./main.js",
|
||||
"preload": "./preload.js"
|
||||
}
|
||||
}
|
||||
|
3174
package-lock.json
generated
3174
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
@ -2,10 +2,13 @@
|
||||
"name": "llonebot",
|
||||
"version": "1.0.0",
|
||||
"description": "NTQQLiteLoaderOneBotApi",
|
||||
"main": "index.js",
|
||||
"main": "dist/main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build": "tsc & tsc -p src/tsconfig.json",
|
||||
"build": "npm run build-main && npm run build-preload && npm run build-renderer",
|
||||
"build-main": "webpack --config webpack.main.config.js",
|
||||
"build-preload": "webpack --config webpack.preload.config.js",
|
||||
"build-renderer": "webpack --config webpack.renderer.config.js",
|
||||
"build-mac": "npm run build && npm run deploy-mac",
|
||||
"deploy-mac": "cp dist/* ~/Library/Containers/com.tencent.qq/Data/Documents/LiteLoaderQQNT/plugins/LLOnebot/",
|
||||
"build-win": "npm run build && npm run deploy-win",
|
||||
@ -14,18 +17,16 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"electron": "^27.0.2",
|
||||
"express": "^4.18.2",
|
||||
"path": "^0.12.7",
|
||||
"stream": "^0.0.2",
|
||||
"typescript": "^5.2.2",
|
||||
"url": "^0.11.3"
|
||||
"express": "^4.18.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "^27.0.2",
|
||||
"@babel/preset-env": "^7.23.2",
|
||||
"@types/express": "^4.17.20",
|
||||
"babel-loader": "^9.1.3",
|
||||
"ts-loader": "^9.5.0",
|
||||
"vite": "^4.5.0",
|
||||
"webpack": "^5.89.0",
|
||||
"webpack-cli": "^5.1.4"
|
||||
"webpack-cli": "^5.1.4",
|
||||
"typescript": "^5.2.2"
|
||||
}
|
||||
}
|
||||
|
1
src/global.d.ts
vendored
1
src/global.d.ts
vendored
@ -1,7 +1,6 @@
|
||||
import {Group, GroupMemberInfo, MessageElement, Peer, PostDataSendMsg, SendMessage, User} from "./types";
|
||||
|
||||
|
||||
|
||||
declare var LLAPI: {
|
||||
on(event: "new-messages", callback: (data: MessageElement[]) => void): void;
|
||||
on(event: "context-msg-menu", callback: (event: any, target: any, msgIds:any) => void): void;
|
||||
|
23
src/main.ts
23
src/main.ts
@ -1,14 +1,9 @@
|
||||
// 运行在 Electron 主进程 下的插件入口
|
||||
|
||||
import {Group, PostDataSendMsg, User} from "./types";
|
||||
// type {Group, PostDataSendMsg, User} = import( "./types");
|
||||
// type Group = import( "./types").Group;
|
||||
// type PostDataSendMsg = import( "./types").PostDataSendMsg;
|
||||
// type User = import( "./types").User;
|
||||
|
||||
const express = require("express")
|
||||
const {ipcMain, webContents} = require('electron');
|
||||
const fs = require('fs');
|
||||
import {ipcMain, webContents} from 'electron';
|
||||
const express = require("express");
|
||||
import {Group, PostDataSendMsg, User} from "./types";
|
||||
|
||||
const CHANNEL_SEND_MSG = "llonebot_sendMsg"
|
||||
|
||||
@ -237,7 +232,13 @@ function onBrowserWindowCreated(window: any, plugin: any) {
|
||||
|
||||
|
||||
// 这两个函数都是可选的
|
||||
module.exports = {
|
||||
onLoad,
|
||||
onBrowserWindowCreated
|
||||
// module.exports = {
|
||||
// onLoad,
|
||||
// onBrowserWindowCreated
|
||||
// }
|
||||
// function onLoad(plugin: any) {
|
||||
//
|
||||
// }
|
||||
export {
|
||||
onLoad, onBrowserWindowCreated
|
||||
}
|
@ -116,7 +116,7 @@ async function forwardMessage(message: MessageElement) {
|
||||
data: {},
|
||||
type: "unknown"
|
||||
}
|
||||
if (element.textElement?.atType == 2) {
|
||||
if (element.textElement?.atType == AtType.atUser) {
|
||||
message_data["type"] = "at"
|
||||
if (element.textElement.atUid != "0") {
|
||||
message_data["data"]["mention"] = element.textElement.atUid
|
||||
@ -192,7 +192,7 @@ async function listenSendMessage(postData: PostDataSendMsg) {
|
||||
if (message.type == "at"){
|
||||
// @ts-ignore
|
||||
message.type = "text"
|
||||
message.atType = 2
|
||||
message.atType = AtType.atUser
|
||||
let atUid = message.data?.qq || message.atUid
|
||||
let group = await getGroup(postData.params.group_id)
|
||||
let atMember = group.members.find(member => member.uin == atUid)
|
||||
|
@ -1,13 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es6",
|
||||
"module": "es6",
|
||||
"outDir": "../dist",
|
||||
"strict": false,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"moduleResolution": "node"
|
||||
},
|
||||
"files": ["renderer.ts"],
|
||||
// "exclude": ["main.ts", "preload.ts"]
|
||||
}
|
@ -5,12 +5,13 @@
|
||||
"outDir": "./dist",
|
||||
"strict": false,
|
||||
"esModuleInterop": true,
|
||||
"allowJs": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"moduleResolution": "node",
|
||||
// "declaration": false
|
||||
},
|
||||
"files": ["src/main.ts", "src/preload.ts"],
|
||||
"include": ["src/*"],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
"node_modules",
|
||||
"src/types.ts"
|
||||
]
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
import { defineConfig } from 'vite';
|
||||
import { resolve } from 'path';
|
||||
|
||||
export default defineConfig({
|
||||
build: {
|
||||
rollupOptions: {
|
||||
input: {
|
||||
// renderer: resolve(__dirname, 'dist/renderer.js') // 入口文件的路径
|
||||
renderer: resolve(__dirname, 'src/renderer.ts') // 入口文件的路径
|
||||
},
|
||||
output: {
|
||||
entryFileNames: '[name].js', // 打包后的文件名
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
60
webpack.base.config.js
Normal file
60
webpack.base.config.js
Normal file
@ -0,0 +1,60 @@
|
||||
// import path from "path";
|
||||
const path = require('path');
|
||||
const TerserPlugin = require('terser-webpack-plugin');
|
||||
|
||||
module.exports = {
|
||||
// target: 'node',
|
||||
entry: {
|
||||
// main: './src/main.ts',
|
||||
// preload: './src/preload.ts'
|
||||
}, // 入口文件路径
|
||||
target: "node",
|
||||
output: { // 输出文件配置
|
||||
path: path.resolve(__dirname, 'dist'), // 输出目录路径
|
||||
filename: '[name].js', // 输出文件名
|
||||
// libraryTarget: "commonjs2",
|
||||
// chunkFormat: "commonjs",
|
||||
},
|
||||
externals: [
|
||||
// "express",
|
||||
"electron", "fs"],
|
||||
experiments: {
|
||||
// outputModule: true
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.js', '.ts']
|
||||
},
|
||||
module: { // 模块配置
|
||||
rules: [ // 模块规则
|
||||
{
|
||||
test: /\.js$/, // 匹配.js文件
|
||||
exclude: /node_modules/, // 排除node_modules目录
|
||||
use: { // 使用的loader
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: ['@babel/preset-env'],
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.ts$/, // 匹配.ts文件
|
||||
// exclude: /node_modules/, // 排除node_modules目录
|
||||
use: { // 使用的loader
|
||||
loader: 'ts-loader',
|
||||
options: {
|
||||
// configFile: 'src/tsconfig.json'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
optimization: {
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
extractComments: false,
|
||||
}),
|
||||
],
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
const path = require('path');
|
||||
|
||||
module.exports = {
|
||||
target: 'node',
|
||||
entry: './src/renderer.ts', // 入口文件路径
|
||||
output: { // 输出文件配置
|
||||
path: path.resolve(__dirname, 'dist'), // 输出目录路径
|
||||
filename: 'bundle.js' // 输出文件名
|
||||
},
|
||||
module: { // 模块配置
|
||||
rules: [ // 模块规则
|
||||
{
|
||||
test: /\.js$/, // 匹配.js文件
|
||||
exclude: /node_modules/, // 排除node_modules目录
|
||||
use: { // 使用的loader
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: ['@babel/preset-env']
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.ts$/, // 匹配.ts文件
|
||||
exclude: /node_modules/, // 排除node_modules目录
|
||||
use: { // 使用的loader
|
||||
loader: 'ts-loader'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
10
webpack.main.config.js
Normal file
10
webpack.main.config.js
Normal file
@ -0,0 +1,10 @@
|
||||
const baseConfig = require('./webpack.base.config.js')
|
||||
|
||||
baseConfig.target = 'electron-main'
|
||||
baseConfig.entry = {
|
||||
main: './src/main.ts',
|
||||
}
|
||||
baseConfig.output.libraryTarget = 'commonjs2'
|
||||
baseConfig.output.chunkFormat = 'commonjs'
|
||||
|
||||
module.exports = baseConfig
|
9
webpack.preload.config.js
Normal file
9
webpack.preload.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
const baseConfig = require('./webpack.base.config.js')
|
||||
|
||||
baseConfig.target = 'electron-preload'
|
||||
baseConfig.entry = {
|
||||
preload: './src/preload.ts',
|
||||
}
|
||||
baseConfig.output.chunkFormat = 'commonjs'
|
||||
baseConfig.output.libraryTarget = 'commonjs2'
|
||||
module.exports = baseConfig
|
11
webpack.renderer.config.js
Normal file
11
webpack.renderer.config.js
Normal file
@ -0,0 +1,11 @@
|
||||
const baseConfig = require('./webpack.base.config.js')
|
||||
|
||||
baseConfig.target = 'electron-renderer'
|
||||
baseConfig.entry = {
|
||||
renderer: './src/renderer.ts',
|
||||
}
|
||||
baseConfig.output.libraryTarget = 'module'
|
||||
baseConfig.output.chunkFormat = 'module'
|
||||
baseConfig.experiments.outputModule = true
|
||||
|
||||
module.exports = baseConfig
|
Loading…
x
Reference in New Issue
Block a user