filecat 3.7.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -15
- package/build/dist/441.bundle.js +1 -1
- package/build/dist/523.bundle.js +1 -1
- package/build/dist/943.bundle.js +1 -1
- package/build/dist/bundle.js +1 -1
- package/build/dist/index.html +8 -1
- package/build/main.js +25 -25
- package/package.json +13 -12
- package/shell/build.js +4 -5
- package/shell/config/env.js +10 -2
- package/shell/config/{webpack.pkg.config.js → webpack.exe.config.js} +4 -5
- package/shell/pkg.ts +37 -0
- package/shell/start/run.cmd +1 -0
- package/shell/start/run.sh +2 -0
- package/shell/config/webpack.docker.config.js +0 -66
- package/shell/restart.sh +0 -29
- /package/shell/config/{webpack.config.js → webpack.web.config.js} +0 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "filecat",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "filecat
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "filecat",
|
|
5
5
|
"author": "xiaobaidadada",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "node --require ts-node/register ./shell/dev.js --env ./env",
|
|
@@ -9,18 +9,19 @@
|
|
|
9
9
|
"dev-inspect": "node --inspect=0.0.0.0:9001 --require ts-node/register ./shell/dev.js --env ./env",
|
|
10
10
|
"server-dev-inspect": "node --inspect=0.0.0.0:9001 --require ts-node/register ./src/main/server.ts --env ./env ",
|
|
11
11
|
"server-dev": "node --require ts-node/register ./src/main/server.ts --env ./env",
|
|
12
|
-
"webpack-dev": "npx webpack serve --mode development --config shell/config/webpack.config.js",
|
|
12
|
+
"webpack-dev": "npx webpack serve --mode development --config shell/config/webpack.web.config.js",
|
|
13
13
|
"generate-proto": "node --require ts-node/register ./src/common/proto/proto.generate.ts",
|
|
14
14
|
"hot-server-dev": "node --require ts-node/register ./src/main/piping.main.ts ",
|
|
15
|
-
"webpack-build": "npx webpack --config shell/config/webpack.config.js",
|
|
15
|
+
"webpack-build": "npx webpack --config shell/config/webpack.web.config.js",
|
|
16
16
|
"i-dev": "npm i --omit=dev",
|
|
17
17
|
"build": "npm run npm-build",
|
|
18
|
+
"build-ts": "tsc",
|
|
18
19
|
"npm-build": "tsc && node shell/build.js npm",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
20
|
+
"exe-build": "tsc && node shell/build.js exe",
|
|
21
|
+
"build-exe-linux-x64": "npm run exe-build && node --require ts-node/register shell/pkg.ts filecat-linux-x64.tar.gz",
|
|
22
|
+
"build-exe-win-x64": "npm run exe-build && node --require ts-node/register shell/pkg.ts filecat-win-x64.tar.gz",
|
|
21
23
|
"start": "node build/main.js",
|
|
22
|
-
"
|
|
23
|
-
"pkg-linux-amd64": "npm run pkg-build && pkg . --no-dependencies --targets node18-linux-x64 --output filecat-linux"
|
|
24
|
+
"test": "prebuild --upload-files-gz filecat-linux --set-version \"\" -u 11234 "
|
|
24
25
|
},
|
|
25
26
|
"pkg": {
|
|
26
27
|
"assets": [
|
|
@@ -83,7 +84,7 @@
|
|
|
83
84
|
"@xiaobaidadada/node-pty-prebuilt": "^1.0.4",
|
|
84
85
|
"@xiaobaidadada/node-tuntap2-wintun": "^1.0.6",
|
|
85
86
|
"@xiaobaidadada/ssh2-prebuilt": "^1.16.0",
|
|
86
|
-
"node-process-watcher": "^1.1.
|
|
87
|
+
"node-process-watcher": "^1.1.8"
|
|
87
88
|
},
|
|
88
89
|
"devDependencies": {
|
|
89
90
|
"@babel/core": "^7.24.3",
|
|
@@ -93,12 +94,12 @@
|
|
|
93
94
|
"@babel/preset-typescript": "^7.24.1",
|
|
94
95
|
"@excalidraw/excalidraw": "^0.17.6",
|
|
95
96
|
"@koa/cors": "^5.0.0",
|
|
96
|
-
"@xiaobaidadada/prebuild": "^13.0.1-
|
|
97
|
+
"@xiaobaidadada/prebuild": "^13.0.1-9",
|
|
97
98
|
"@xterm/addon-fit": "^0.10.0",
|
|
98
99
|
"@xterm/xterm": "^5.5.0",
|
|
99
100
|
"ace-builds": "^1.32.9",
|
|
100
101
|
"archiver": "^7.0.1",
|
|
101
|
-
"axios": "^1.7.
|
|
102
|
+
"axios": "^1.7.8",
|
|
102
103
|
"babel-loader": "^9.1.3",
|
|
103
104
|
"chart.js": "^4.4.2",
|
|
104
105
|
"chokidar": "^4.0.3",
|
|
@@ -110,6 +111,7 @@
|
|
|
110
111
|
"github-markdown-css": "^5.6.1",
|
|
111
112
|
"html-webpack-plugin": "^5.6.0",
|
|
112
113
|
"http-proxy-middleware": "^3.0.3",
|
|
114
|
+
"https-proxy-agent": "^7.0.6",
|
|
113
115
|
"i18next": "^23.12.2",
|
|
114
116
|
"koa-proxies": "^0.12.4",
|
|
115
117
|
"listr2": "^8.2.1",
|
|
@@ -130,7 +132,6 @@
|
|
|
130
132
|
"normalize.css": "^8.0.1",
|
|
131
133
|
"noty": "^3.2.0-beta-deprecated",
|
|
132
134
|
"piping": "^1.0.0-rc.4",
|
|
133
|
-
"pkg": "^5.8.1",
|
|
134
135
|
"protobufjs-cli": "^1.1.3",
|
|
135
136
|
"react": "^18.3.1",
|
|
136
137
|
"react-dom": "^18.3.1",
|
package/shell/build.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
const {Listr} = require("listr2");
|
|
2
2
|
const webpack = require('webpack');
|
|
3
3
|
const os = require("os");
|
|
4
|
-
const config = require('./config/webpack.config.js');
|
|
4
|
+
const config = require('./config/webpack.web.config.js');
|
|
5
5
|
const args = process.argv.slice(2); // slice to remove the first two default values
|
|
6
6
|
let serverConfig ;
|
|
7
7
|
if (args.length ===0 || args[0]==="npm") {
|
|
8
8
|
serverConfig = require('./config/webpack.npm.config.js');
|
|
9
|
-
} else if (args[0]==="
|
|
10
|
-
serverConfig = require('./config/webpack.
|
|
11
|
-
} else if (args[0]==="docker") {
|
|
12
|
-
serverConfig = require('./config/webpack.docker.config.js');
|
|
9
|
+
} else if (args[0]==="exe") {
|
|
10
|
+
serverConfig = require('./config/webpack.exe.config.js');
|
|
13
11
|
}
|
|
14
12
|
const {copyFileSync} = require("fs");
|
|
15
13
|
const fs = require("fs");
|
|
@@ -88,6 +86,7 @@ const tasksLister = new Listr(
|
|
|
88
86
|
// 因为不一定不是windows环境 所以都复制一下,发布npm 在windows环境下,不然没有这个dll
|
|
89
87
|
copyFiles(path.resolve("node_modules/@xiaobaidadada/node-tuntap2-wintun/wintun_dll"),path.join(__dirname, "..", "build"))
|
|
90
88
|
rimraf(path.join(__dirname,"..","build","server"));
|
|
89
|
+
|
|
91
90
|
res(true);
|
|
92
91
|
});
|
|
93
92
|
|
package/shell/config/env.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
|
|
2
|
-
// module.exports.base_url = "/
|
|
3
|
-
module.exports.base_url = ""
|
|
2
|
+
// module.exports.base_url = "/pre" // 这将会影响到自定义路由 修改以后之前设置的自定义路由将不可用 请谨慎修改 dev 环境前后端都需要重启
|
|
3
|
+
module.exports.base_url = ""
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 构建说明:
|
|
7
|
+
* 1. npm方式不能把二进制依赖推送到npm 用户安装的时候 环境可能是win或者linux 需要自己安装依赖
|
|
8
|
+
* 2. docker与二进制安装,需要把二进制打包进去
|
|
9
|
+
* 3. 前后端同步的数据 本地dev的时候需要靠这个文件,正式包可以依赖参数
|
|
10
|
+
*
|
|
11
|
+
* */
|
|
@@ -3,7 +3,6 @@ const nodeExternals = require('webpack-node-externals');
|
|
|
3
3
|
const webpack = require('webpack');
|
|
4
4
|
const TerserPlugin = require("terser-webpack-plugin");
|
|
5
5
|
const package_data = require("../../package.json")
|
|
6
|
-
var prebuild_file_path_1 = require("./prebuild-file-path");
|
|
7
6
|
const {base_url} = require("./env");
|
|
8
7
|
const plugins = [
|
|
9
8
|
new webpack.DefinePlugin({
|
|
@@ -12,11 +11,11 @@ const plugins = [
|
|
|
12
11
|
new webpack.DefinePlugin({
|
|
13
12
|
'process.env.version': JSON.stringify(package_data.version),
|
|
14
13
|
}),
|
|
14
|
+
// new webpack.DefinePlugin({
|
|
15
|
+
// 'process.platform': JSON.stringify(process.platform) // 这里将 process.platform 替换为实际的值 在遇到动态打包的时候require 可以判断类型 函数内部的无法判断
|
|
16
|
+
// }),
|
|
15
17
|
new webpack.DefinePlugin({
|
|
16
|
-
'process.
|
|
17
|
-
}),
|
|
18
|
-
new webpack.DefinePlugin({
|
|
19
|
-
'process.env.run_env': JSON.stringify("pkg")
|
|
18
|
+
'process.env.run_env': JSON.stringify("exe") // 必须用 JSON.stringify
|
|
20
19
|
}),
|
|
21
20
|
new webpack.IgnorePlugin({
|
|
22
21
|
resourceRegExp: /Debug/,
|
package/shell/pkg.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {FileCompressType} from "../src/common/file.pojo";
|
|
2
|
+
import {FileService} from "../src/main/domain/file/file.service";
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const fs = require('fs');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
|
|
8
|
+
// 复制 node
|
|
9
|
+
fs.copyFileSync(process.execPath, path.join(__dirname, "..", "build", path.basename(process.execPath)));
|
|
10
|
+
|
|
11
|
+
const FileServiceImpl = new FileService();
|
|
12
|
+
const args = process.argv.slice(2);
|
|
13
|
+
|
|
14
|
+
if(args[0].includes("win")) {
|
|
15
|
+
fs.copyFileSync(path.join(__dirname,"start","run.cmd"), path.join(__dirname, "..", "build", "run.cmd"));
|
|
16
|
+
} else {
|
|
17
|
+
fs.copyFileSync(path.join(__dirname,"start","run.sh"), path.join(__dirname, "..", "build", "run.sh"));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const filePaths: string[] = [], directorys: string[] = [];
|
|
21
|
+
const root_path = path.join(__dirname, "..", "build");
|
|
22
|
+
for (const file of fs.readdirSync(root_path)) {
|
|
23
|
+
const name = path.join(root_path, decodeURIComponent(file));
|
|
24
|
+
try {
|
|
25
|
+
const stats = fs.statSync(name);
|
|
26
|
+
if (stats.isFile()) {
|
|
27
|
+
filePaths.push(name);
|
|
28
|
+
} else {
|
|
29
|
+
directorys.push(name);
|
|
30
|
+
}
|
|
31
|
+
} catch (e) {
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// args[0] 会在 package.json 所在目录下
|
|
35
|
+
FileServiceImpl.compress(FileCompressType.tar,9,args[0], filePaths, directorys,(v)=>{
|
|
36
|
+
console.log(`压缩进度:${v.toFixed(2)}`)
|
|
37
|
+
},true)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.\node main.js %*
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
const path = require('path');
|
|
2
|
-
const nodeExternals = require('webpack-node-externals');
|
|
3
|
-
const webpack = require('webpack');
|
|
4
|
-
const TerserPlugin = require("terser-webpack-plugin");
|
|
5
|
-
const package_data = require("../../package.json")
|
|
6
|
-
var prebuild_file_path_1 = require("./prebuild-file-path");
|
|
7
|
-
const {base_url} = require("./env");
|
|
8
|
-
const plugins = [
|
|
9
|
-
new webpack.DefinePlugin({
|
|
10
|
-
'process.env.NODE_ENV': JSON.stringify('production'),
|
|
11
|
-
}),
|
|
12
|
-
new webpack.DefinePlugin({
|
|
13
|
-
'process.env.version': JSON.stringify(package_data.version),
|
|
14
|
-
}),
|
|
15
|
-
new webpack.DefinePlugin({
|
|
16
|
-
'process.platform': JSON.stringify(process.platform) // 这里将 process.platform 替换为实际的值 在遇到动态打包的时候require 可以判断类型 函数内部的无法判断
|
|
17
|
-
}),
|
|
18
|
-
new webpack.DefinePlugin({
|
|
19
|
-
'process.env.run_env': JSON.stringify("docker") // 必须用 JSON.stringify
|
|
20
|
-
}),
|
|
21
|
-
new webpack.IgnorePlugin({
|
|
22
|
-
resourceRegExp: /Debug/,
|
|
23
|
-
}),
|
|
24
|
-
new webpack.DefinePlugin({
|
|
25
|
-
'process.env.base_url': JSON.stringify(base_url),
|
|
26
|
-
}),
|
|
27
|
-
];
|
|
28
|
-
module.exports = {
|
|
29
|
-
target: 'node', // 指定打包结果运行在node环境下
|
|
30
|
-
mode: 'production', // 或者 'production'
|
|
31
|
-
entry: path.join(__dirname, "..", "..", "build", "server", "main", "server.js"), // 你的TypeScript入口文件路径
|
|
32
|
-
output: {
|
|
33
|
-
path: path.resolve(__dirname, "..", "..", "build"), // 输出目录
|
|
34
|
-
filename: 'main.js', // 输出文件名
|
|
35
|
-
},
|
|
36
|
-
resolve: {
|
|
37
|
-
extensions: ['.ts', '.js', '.node'], // 解析文件时自动补全的文件扩展名
|
|
38
|
-
},
|
|
39
|
-
module: {
|
|
40
|
-
rules: [
|
|
41
|
-
{
|
|
42
|
-
test: /\.node$|Addon$/,
|
|
43
|
-
loader: 'node-loader', // 会拷贝.node 并改变require路径 到build目录下 但是如果 .node 有更新 他是不会不更新的需要先删除?
|
|
44
|
-
}
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
externalsPresets: { node: true },
|
|
48
|
-
externals: [
|
|
49
|
-
{
|
|
50
|
-
'@aws-sdk/client-s3': 'S3', // 假设全局变量名为 S3 是 @aws-sdk/client-s3带 @符号的话会无法压缩
|
|
51
|
-
'cors':'commonjs cors' // 动态加载无法打包 如果需要可以使用 import "cors"
|
|
52
|
-
// 'routing-controllers':'commonjs routing-controllers', // 有一些动态引入(他需要的动态引入也需要导入),或者含有.node(使用用户自己安装编译的版本) 无法被打包 直接忽略这个包
|
|
53
|
-
}
|
|
54
|
-
],
|
|
55
|
-
// externals: [nodeExternals()], // 将所有的外部模块排除打包
|
|
56
|
-
plugins,
|
|
57
|
-
optimization: {
|
|
58
|
-
minimize: true, // 压缩Js代码
|
|
59
|
-
minimizer: [
|
|
60
|
-
new TerserPlugin({
|
|
61
|
-
extractComments: true,//不将注释提取到单独的文件中
|
|
62
|
-
}),
|
|
63
|
-
],
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
};
|
package/shell/restart.sh
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# 读取参数
|
|
5
|
-
PORT1=5567
|
|
6
|
-
PORT2=3301
|
|
7
|
-
|
|
8
|
-
# 查找并关闭第一个端口的程序
|
|
9
|
-
find_and_kill_process() {
|
|
10
|
-
local PORT=$1
|
|
11
|
-
local PID=$(lsof -t -i:$PORT)
|
|
12
|
-
if [ -n "$PID" ]; then
|
|
13
|
-
echo "Found process with PID $PID using port $PORT. Killing process..."
|
|
14
|
-
kill $PID
|
|
15
|
-
echo "Process killed."
|
|
16
|
-
else
|
|
17
|
-
echo "No process found using port $PORT."
|
|
18
|
-
fi
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
# 查找并关闭第一个端口的程序
|
|
22
|
-
find_and_kill_process $PORT1
|
|
23
|
-
|
|
24
|
-
# 查找并关闭第二个端口的程序
|
|
25
|
-
find_and_kill_process $PORT2
|
|
26
|
-
|
|
27
|
-
npm install
|
|
28
|
-
|
|
29
|
-
nohup npm run dev >./nohup.out 2>&1 &
|
|
File without changes
|