jjb-cmd 2.4.0 → 2.5.1
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 +164 -186
- package/build.js +20 -0
- package/obf.config.json +3 -0
- package/package.json +2 -2
- package/src/auth.js +47 -1
- package/src/code-optimization.js +44 -43
- package/src/config.js +122 -1
- package/src/publish.js +222 -1
- package/src/push.js +283 -1
- package/src/rm-rf.js +52 -1
- package/src/utils.js +226 -0
- package/src/tools.js +0 -1
- package/src/version.js +0 -1
package/README.md
CHANGED
|
@@ -1,186 +1,164 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
</li>
|
|
166
|
-
<li>
|
|
167
|
-
<p>2.1.5</p>
|
|
168
|
-
<div>指定java pull工作区域cwd</div>
|
|
169
|
-
</li>
|
|
170
|
-
<li>
|
|
171
|
-
<p>2.1.4</p>
|
|
172
|
-
<div>修复问题</div>
|
|
173
|
-
</li>
|
|
174
|
-
<li>
|
|
175
|
-
<p>2.1.3</p>
|
|
176
|
-
<div>push指令增加打包到java容器,参数java test(环境) 更新文案(版本描述)</div>
|
|
177
|
-
</li>
|
|
178
|
-
<li>
|
|
179
|
-
<p>2.1.2</p>
|
|
180
|
-
<div>修改提交npm代码整体结构</div>
|
|
181
|
-
</li>
|
|
182
|
-
<li>
|
|
183
|
-
<p>2.0.8</p>
|
|
184
|
-
<div>修改init指令初始化项目,从gitlab获取</div>
|
|
185
|
-
</li>
|
|
186
|
-
</ul>
|
|
1
|
+
# JJB-CMD 前端脚手架工具
|
|
2
|
+
|
|
3
|
+
## 🛠 安装
|
|
4
|
+
|
|
5
|
+
### 全局安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g jjb-cmd
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
### 本地安装
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install jjb-cmd
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 快速开始
|
|
18
|
+
|
|
19
|
+
### 查看版本
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
jjb-cmd v
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 查看帮助
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
jjb-cmd help
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 命令说明
|
|
32
|
+
|
|
33
|
+
### 基础命令
|
|
34
|
+
|
|
35
|
+
| 命令 | 描述 | 示例 |
|
|
36
|
+
|------|------|------|
|
|
37
|
+
| `v` | 查看当前版本 | `jjb-cmd v` |
|
|
38
|
+
| `help` | 显示帮助信息 | `jjb-cmd help` |
|
|
39
|
+
|
|
40
|
+
### 开发工具
|
|
41
|
+
|
|
42
|
+
#### 代码优化
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
jjb-cmd opti
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
自动优化项目代码,包括:
|
|
49
|
+
- 代码格式化和美化
|
|
50
|
+
- 依赖分析和优化建议
|
|
51
|
+
- 性能优化建议
|
|
52
|
+
|
|
53
|
+
### 组件管理
|
|
54
|
+
|
|
55
|
+
#### 用户认证
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
jjb-cmd auth <username> <password>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**参数说明:**
|
|
62
|
+
- `username`: 用户名
|
|
63
|
+
- `password`: 密码
|
|
64
|
+
|
|
65
|
+
**示例:**
|
|
66
|
+
```bash
|
|
67
|
+
jjb-cmd auth admin 123456
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### 发布组件
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
jjb-cmd publish <version>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**参数说明:**
|
|
77
|
+
- `version`: 发布版本号,可设置为 `latest`
|
|
78
|
+
|
|
79
|
+
**示例:**
|
|
80
|
+
```bash
|
|
81
|
+
# 发布指定版本
|
|
82
|
+
jjb-cmd publish 1.0.0
|
|
83
|
+
|
|
84
|
+
# 发布最新版本
|
|
85
|
+
jjb-cmd publish latest
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**参数说明:**
|
|
89
|
+
- `yes`: 发布时需要提交信息
|
|
90
|
+
- `no`: 发布时不需要提交信息
|
|
91
|
+
|
|
92
|
+
### 部署管理
|
|
93
|
+
|
|
94
|
+
#### 推送微应用
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
jjb-cmd push java <env>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**参数说明:**
|
|
101
|
+
- `env`: 部署环境(test/prod)
|
|
102
|
+
|
|
103
|
+
**示例:**
|
|
104
|
+
```bash
|
|
105
|
+
# 部署到测试环境
|
|
106
|
+
jjb-cmd push java test
|
|
107
|
+
|
|
108
|
+
# 部署到生产环境
|
|
109
|
+
jjb-cmd push java prod
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### 清理操作
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
jjb-cmd rm-rf
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
清理临时文件和缓存。
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## 开发
|
|
123
|
+
|
|
124
|
+
### 项目结构
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
jjb-cmd/
|
|
128
|
+
├── bin/ # 命令行入口
|
|
129
|
+
│ └── command.js
|
|
130
|
+
├── src/ # 源代码
|
|
131
|
+
│ ├── auth.js # 认证模块
|
|
132
|
+
│ ├── code-optimization.js # 代码优化
|
|
133
|
+
│ ├── config.js # 配置管理
|
|
134
|
+
│ ├── publish.js # 发布模块
|
|
135
|
+
│ ├── push.js # 推送模块
|
|
136
|
+
│ ├── rm-rf.js # 清理模块
|
|
137
|
+
│ └── utils.js # 工具函数
|
|
138
|
+
├── publish/ # 发布目录
|
|
139
|
+
├── build.js # 构建脚本
|
|
140
|
+
├── package.json # 项目配置
|
|
141
|
+
└── README.md # 项目文档
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 构建
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
node build.js
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
构建过程包括:
|
|
151
|
+
1. 代码混淆
|
|
152
|
+
2. 文件复制
|
|
153
|
+
3. 依赖打包
|
|
154
|
+
|
|
155
|
+
## 更新日志
|
|
156
|
+
|
|
157
|
+
### v2.5.0 (当前版本)
|
|
158
|
+
- 完善文档和帮助信息
|
|
159
|
+
- 优化错误处理机制
|
|
160
|
+
- 增强代码优化功能
|
|
161
|
+
|
|
162
|
+
## 许可证
|
|
163
|
+
|
|
164
|
+
本项目基于 [MIT](LICENSE) 许可证开源。
|
package/build.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const child_process = require('child_process');
|
|
2
|
+
const utils = require('./src/utils');
|
|
3
|
+
|
|
4
|
+
// 执行代码混淆
|
|
5
|
+
child_process.execSync(`npx javascript-obfuscator src --output publish/src --config obf.config.json`);
|
|
6
|
+
console.log('obf Done!');
|
|
7
|
+
|
|
8
|
+
// 复制bin目录
|
|
9
|
+
utils.CopyFolder('./bin', './publish/bin', () => {
|
|
10
|
+
console.log('bin Folder Done!');
|
|
11
|
+
|
|
12
|
+
// 复制其他文件
|
|
13
|
+
utils.CopyFile('./package.json', './publish/package.json', () => {
|
|
14
|
+
utils.CopyFile('./README.md', './publish/README.md', () => {
|
|
15
|
+
utils.CopyFile('./LICENSE', './publish/LICENSE', () => {
|
|
16
|
+
console.log('ALL Done !');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
});
|
package/obf.config.json
ADDED
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"env": "prod",
|
|
5
5
|
"httpMethod": "http",
|
|
6
6
|
"pushMessage": "yes",
|
|
7
|
-
"version": "2.
|
|
7
|
+
"version": "2.5.1",
|
|
8
8
|
"description": "jjb-cmd命令行工具",
|
|
9
9
|
"main": "index.js",
|
|
10
10
|
"scripts": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"bin": {
|
|
15
15
|
"jjb-cmd": "bin/command.js"
|
|
16
16
|
},
|
|
17
|
-
"author": "
|
|
17
|
+
"author": "jiaoxiwei",
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@cqsjjb/react-code-optimization": "^0.0.2",
|
package/src/auth.js
CHANGED
|
@@ -1 +1,47 @@
|
|
|
1
|
-
|
|
1
|
+
const axios = require('axios');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const { getApiHost } = require('./config');
|
|
4
|
+
const {
|
|
5
|
+
logInfo,
|
|
6
|
+
logSuccess,
|
|
7
|
+
logError,
|
|
8
|
+
writeFile,
|
|
9
|
+
fileExists,
|
|
10
|
+
deleteFile
|
|
11
|
+
} = require('./utils');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 用户认证模块
|
|
15
|
+
* @param {string[]} args - 命令行参数 [username, password]
|
|
16
|
+
*/
|
|
17
|
+
module.exports = args => {
|
|
18
|
+
// 参数验证
|
|
19
|
+
if (!args || args.length < 2) {
|
|
20
|
+
logError('用户名和密码参数不能为空!');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const [ username, password ] = args;
|
|
25
|
+
logInfo('Auth: 授权登录!');
|
|
26
|
+
|
|
27
|
+
const authPath = path.join(__dirname, '../.auth');
|
|
28
|
+
|
|
29
|
+
axios.post(`${getApiHost()}/api/auth`, {
|
|
30
|
+
username,
|
|
31
|
+
password
|
|
32
|
+
}).then(res => {
|
|
33
|
+
if (res.data.status) {
|
|
34
|
+
logSuccess('Auth: 登录成功,已缓存登录状态!');
|
|
35
|
+
writeFile(authPath, `${username}/${password}`);
|
|
36
|
+
} else {
|
|
37
|
+
logError(`Auth: ${res.data.message}`);
|
|
38
|
+
if (fileExists(authPath)) {
|
|
39
|
+
deleteFile(authPath);
|
|
40
|
+
}
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}).catch(e => {
|
|
44
|
+
logError(`Auth: 登录失败!${e.message}`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
});
|
|
47
|
+
};
|
package/src/code-optimization.js
CHANGED
|
@@ -1,48 +1,49 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}(a1_0x57b7, 0x4e77c));
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const readline = require('readline');
|
|
3
|
+
const { bootstrap } = require('@cqsjjb/react-code-optimization');
|
|
4
|
+
const {
|
|
5
|
+
logInfo,
|
|
6
|
+
logSuccess,
|
|
7
|
+
logError,
|
|
8
|
+
logWarning
|
|
9
|
+
} = require('./utils');
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
19
|
-
return a1_0x57b7();
|
|
20
|
-
}
|
|
11
|
+
const io = readline.createInterface({
|
|
12
|
+
input: process.stdin,
|
|
13
|
+
output: process.stdout
|
|
14
|
+
});
|
|
21
15
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
16
|
+
/**
|
|
17
|
+
* 代码优化模块
|
|
18
|
+
* 使用 @cqsjjb/react-code-optimization 进行代码优化
|
|
19
|
+
*/
|
|
20
|
+
module.exports = function () {
|
|
21
|
+
const rootPath = path.resolve('./');
|
|
22
|
+
|
|
23
|
+
logInfo('代码优化工具');
|
|
24
|
+
logWarning('此操作将优化当前目录下的代码,请确保已备份重要文件!');
|
|
30
25
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
'
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
26
|
+
io.question('是否确认优化代码?[y/n]:', function (answer) {
|
|
27
|
+
const trimmedAnswer = answer.trim().toLowerCase();
|
|
28
|
+
|
|
29
|
+
if (trimmedAnswer === 'y' || trimmedAnswer === 'yes') {
|
|
30
|
+
logInfo('开始代码优化...');
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
bootstrap(rootPath, 100, () => {
|
|
34
|
+
logSuccess('优化完成。');
|
|
35
|
+
process.exit(0);
|
|
36
|
+
});
|
|
37
|
+
} catch (error) {
|
|
38
|
+
logError(`代码优化过程中发生错误:${error.message}`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
} else if (trimmedAnswer === 'n' || trimmedAnswer === 'no') {
|
|
42
|
+
logInfo('取消优化。');
|
|
43
|
+
process.exit(0);
|
|
44
|
+
} else {
|
|
45
|
+
logError('无效操作,请输入 y 或 n。');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
47
48
|
});
|
|
48
49
|
};
|