jjb-cmd 2.0.9 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. package/package.json +2 -1
  2. package/src/new/cmd.init/index.js +1 -102
  3. package/src/new/cmd.install/config.js +1 -47
  4. package/src/new/cmd.install/index.js +1 -262
  5. package/src/new/cmd.install/tools.js +1 -230
  6. package/src/new/cmd.push/index.js +1 -54
  7. package/src/new/cmd.reglist/index.js +1 -22
  8. package/src/new/cmd.rm-rf/index.js +1 -58
  9. package/src/new/cmd.version/index.js +1 -34
  10. package/src/old/cli.init.js +1 -26
  11. package/src/old/cli.install/config.js +1 -206
  12. package/src/old/cli.install/index.js +1 -340
  13. package/src/old/cli.install/tools.js +1 -230
  14. package/src/old/cli.merge.js +1 -80
  15. package/src/old/cli.pull.js +1 -94
  16. package/src/old/cli.pull2.js +1 -377
  17. package/src/old/cli.rm-rf.js +1 -88
  18. package/src/old/progress-bar.js +1 -23
  19. package/src/old/util.js +1 -149
  20. package/.idea/jjb-cmd.iml +0 -12
  21. package/.idea/modules.xml +0 -8
  22. package/.idea/vcs.xml +0 -6
  23. package/src/old/cli.dva.register.saas.txt +0 -40
  24. package/src/old/cli.dva.register.spa.txt +0 -22
  25. package/src/old/cli.dva.router.saas.txt +0 -210
  26. package/src/old/cli.dva.router.spa.txt +0 -119
  27. package/src/old/cli.init/jjb.config.json +0 -40
  28. package/src/old/cli.init/jjb.script/build.js +0 -11
  29. package/src/old/cli.init/jjb.script/config.js +0 -217
  30. package/src/old/cli.init/jjb.script/proxy.js +0 -19
  31. package/src/old/cli.init/jjb.script/server.js +0 -29
  32. package/src/old/cli.init/jjb.script/utils.js +0 -13
  33. package/src/old/cli.init/package.json +0 -65
  34. package/src/old/cli.init/public/index.html +0 -21
  35. package/src/old/cli.init/src/enumerate/menu/index.js +0 -1
  36. package/src/old/cli.init/src/enumerate/namespace/index.js +0 -3
  37. package/src/old/cli.init/src/index.js +0 -24
  38. package/src/old/cli.init/src/models/main/index.js +0 -31
  39. package/src/old/cli.init/src/pages/index.js +0 -9
  40. package/src/old/cli.init/webstorm.config.js +0 -18
@@ -1,230 +1 @@
1
- const fs = require('fs');
2
- const os = require('os');
3
- const {
4
- GIT_HOST,
5
- GIT_TEMP_DIR,
6
- CLOUD_PROJECT
7
- } = require('./config');
8
-
9
- /**
10
- * @description 删除全部
11
- * @param path {string} 路径
12
- */
13
- exports.f_rm_rf = function (path) {
14
- if (fs.existsSync(path)) {
15
- const list = fs.readdirSync(path);
16
- for (let i = 0; i < list.length; i++) {
17
- const item = list[ i ];
18
- const vPath = `${path}/${item}`;
19
- if (fs.statSync(vPath).isDirectory()) {
20
- exports.f_rm_rf(vPath);
21
- fs.rmdirSync(vPath);
22
- } else {
23
- fs.unlinkSync(vPath);
24
- }
25
- }
26
- }
27
- };
28
-
29
- /**
30
- * @typedef {object} GitResource
31
- * @property {string} path
32
- * @property {string} compress
33
- * @property {string} repository
34
- */
35
-
36
- /**
37
- * @description 拉取git资源
38
- * @param installResources {Resource[]} 资源名称
39
- * @return {GitResource[]}
40
- */
41
- exports.f_pull_git_repository = function (installResources = []) {
42
- return installResources.map(item => {
43
- const resource = CLOUD_PROJECT[ item.name ] || undefined;
44
- const template = os.tmpdir();
45
- return {
46
- path: `${template}\\${GIT_TEMP_DIR}\\${item.name}.zip`,
47
- compress: `${template}\\${GIT_TEMP_DIR}\\${item.name}_zip`,
48
- repository: `${GIT_HOST}/api/v4/projects/${resource.projectId}/repository/archive.zip?private_token=${resource.token}&ref=master`
49
- };
50
- });
51
- };
52
-
53
- /**
54
- * @description 扫描是否存在jjb.config.json
55
- * @param root 路径
56
- * @returns {boolean}
57
- */
58
- exports.f_scan_jjb_config_json = function (root) {
59
- return fs.existsSync(`${root}\\jjb.config.json`);
60
- };
61
-
62
- /**
63
- * @typedef {object} JJB_CONFIG_JSON
64
- * @property {string} projectType
65
- * @property {string} installTarget
66
- * @property {Resource[]} installResources
67
- */
68
-
69
- /**
70
- * @description 验证规则
71
- * @param root {string} 路径
72
- * @return {JJB_CONFIG_JSON}
73
- */
74
- exports.f_scan_jjb_config_json_rules = function (root) {
75
- let jjb_config_json = {};
76
- try {
77
- jjb_config_json = JSON.parse(fs.readFileSync(`${root}\\jjb.config.json`).toString());
78
- } catch (e) {
79
- console.log('【Error】:[jjb.config.json]文件解析失败,请确认是否配置正确。');
80
- process.exit(0);
81
- }
82
- if (!('projectType' in jjb_config_json)) {
83
- console.log('【Error】:[jjb.config.json]文件配置无效,需要projectType属性。');
84
- process.exit(0);
85
- }
86
- if (!('installTarget' in jjb_config_json)) {
87
- console.log('【Error】:[jjb.config.json]文件配置无效,需要installTarget属性。');
88
- process.exit(0);
89
- }
90
- if (!('installResources' in jjb_config_json)) {
91
- console.log('【Error】:[jjb.config.json]文件配置无效,需要installResources属性。');
92
- process.exit(0);
93
- }
94
- if (typeof jjb_config_json.projectType !== 'string') {
95
- console.log('【Error】:[jjb.config.json.projectType]类型是一个string。');
96
- process.exit(0);
97
- }
98
- if (![
99
- 'multi',
100
- 'spa',
101
- 'uniapp',
102
- 'micro-spa'
103
- ].includes(jjb_config_json.projectType)) {
104
- console.log('【Error】:[jjb.config.json.projectType]配置无效,有效值<multi | spa | micro-spa | uniapp>。');
105
- process.exit(0);
106
- }
107
- if (typeof jjb_config_json.installTarget !== 'string') {
108
- console.log('【Error】:[jjb.config.json.installTarget]类型是一个string。');
109
- process.exit(0);
110
- }
111
- if (![
112
- 'node_modules',
113
- 'src'
114
- ].includes(jjb_config_json.installTarget)) {
115
- console.log('【Error】:[jjb.config.json.node_modules]配置无效,有效值<node_modules | src>。');
116
- process.exit(0);
117
- }
118
- if (!Array.isArray(jjb_config_json.installResources)) {
119
- console.log('【Error】:[jjb.config.json.installResources]类型是一个Array<string>。');
120
- process.exit(0);
121
- }
122
- if (jjb_config_json.installResources.length === 0) {
123
- console.log('【Error】:[jjb.config.json.installResources]无资源。');
124
- process.exit(0);
125
- }
126
- const resources = exports.f_resolve_install_resources(jjb_config_json.installResources);
127
- if (resources.map(item => item.name).filter(v => ![
128
- 'jjb-common',
129
- 'jjb-dva-runtime',
130
- 'jjb-common-lib',
131
- 'jjb-common-decorator',
132
- 'react-admin-component',
133
- 'vue-unisass-component'
134
- ].includes(v)).length !== 0) {
135
- console.log('【Error】:[jjb.config.json.installResources]配置无效,有效值<common | react-admin-component | vue-unisass-component | jjb-common-decorator | jjb-dva-runtime | jjb-common-lib>。');
136
- process.exit(0);
137
- }
138
- jjb_config_json.installResources = resources;
139
- return jjb_config_json;
140
- };
141
-
142
- /**
143
- * @description 创建package.json
144
- * @param path {string} 路径
145
- * @param name {string} 包名
146
- * @param version {string} 版本
147
- */
148
- exports.f_create_package_json = function (path, name, version) {
149
- fs.writeFileSync(`${path}\\package.json`, `{"name":"${name}","version":"${version}","main": "index.js"}`);
150
- };
151
-
152
- /**
153
- * @typedef {object} Resource
154
- * @property {string} name
155
- * @property {string[]} importList
156
- */
157
-
158
- /**
159
- * @description 分析resources
160
- * @param installResources
161
- * @return {Resource[]}
162
- */
163
- exports.f_resolve_install_resources = function (installResources = []) {
164
- const resources = [];
165
- if (Array.isArray(installResources)) {
166
- installResources.forEach(resource => {
167
- if (Array.isArray(resource)) {
168
- const [ name, importList = [] ] = resource;
169
- resources.push({
170
- name,
171
- importList
172
- });
173
- } else {
174
- resources.push({
175
- name: resource,
176
- importList: []
177
- });
178
- }
179
- });
180
- }
181
- return resources;
182
- };
183
-
184
- /**
185
- * @description 更新项目package.json文件
186
- * @param path {string} 路径
187
- * @param name {string} 包名
188
- * @param version {string} 版本
189
- */
190
- exports.f_update_project_package_json = function (path, name, version) {
191
- const packageJSONFile = JSON.parse(fs.readFileSync(path).toString());
192
- packageJSONFile.dependencies[ name ] = version;
193
- fs.writeFileSync(path, JSON.stringify(packageJSONFile, null, 2));
194
- };
195
-
196
- /**
197
- * @description 复制文件
198
- * @param originSrc
199
- * @param targetSrc
200
- */
201
- exports.f_file_copy = function (originSrc, targetSrc) {
202
- fs.readdirSync(originSrc).forEach(dir => {
203
- const oPath = `${originSrc}\\${dir}`;
204
- const tPath = `${targetSrc}\\${dir}`;
205
- if (fs.statSync(oPath).isDirectory()) {
206
- fs.mkdirSync(tPath);
207
- exports.f_file_copy(oPath, tPath);
208
- } else {
209
- fs.writeFileSync(tPath, fs.readFileSync(oPath).toString());
210
- }
211
- });
212
- };
213
-
214
- /**
215
- * @description 替换文件操作
216
- * @param source {[]} 替换源
217
- * @param root {string} 路径
218
- */
219
- exports.f_content_replace = function (source = [], root) {
220
- source.forEach(item => {
221
- const path = root + item.path;
222
- if (fs.existsSync(path)) {
223
- let content = fs.readFileSync(path).toString();
224
- item.replace.forEach(rep => {
225
- content = content.replace(rep[ 0 ], rep[ 1 ]);
226
- });
227
- fs.writeFileSync(path, content);
228
- }
229
- });
230
- };
1
+ function a11_0x2708(_0xf8a417,_0x405ba4){const _0x548e48=a11_0x548e();return a11_0x2708=function(_0x2708c0,_0x4942fa){_0x2708c0=_0x2708c0-0x64;let _0x3cb22d=_0x548e48[_0x2708c0];return _0x3cb22d;},a11_0x2708(_0xf8a417,_0x405ba4);}function a11_0x548e(){const _0x1d0f3e=['7007166wJvHJA','_zip','length','\x5cjjb.config.json','1427504qcFhwh','parse','【Error】:[jjb.config.json]文件解析失败,请确认是否配置正确。','replace','includes','installTarget','f_content_replace','f_pull_git_repository','node_modules','exit','isArray','25yRAUad','f_scan_jjb_config_json_rules','toString','【Error】:[jjb.config.json]文件配置无效,需要installResources属性。','log','path','projectId','stringify','mkdirSync','isDirectory','【Error】:[jjb.config.json.installResources]类型是一个Array<string>。','.zip','【Error】:[jjb.config.json.projectType]配置无效,有效值<multi\x20|\x20spa\x20|\x20micro-spa\x20|\x20uniapp>。','existsSync','【Error】:[jjb.config.json.node_modules]配置无效,有效值<node_modules\x20|\x20src>。','3SPjHJZ','projectType','313cSTAZl','readdirSync','name','f_file_copy','spa','vue-unisass-component','\x22,\x22main\x22:\x20\x22index.js\x22}','readFileSync','tmpdir','96sFPlCK','unlinkSync','/api/v4/projects/','【Error】:[jjb.config.json.installResources]无资源。','20OHzKoo','【Error】:[jjb.config.json.installTarget]类型是一个string。','f_rm_rf','\x5cpackage.json','3951673cuRfFk','11318TklJOo','string','【Error】:[jjb.config.json]文件配置无效,需要projectType属性。','map','f_update_project_package_json','343602JYsmiy','【Error】:[jjb.config.json]文件配置无效,需要installTarget属性。','jjb-common','filter','3532868bsqyBO','【Error】:[jjb.config.json.installResources]配置无效,有效值<common\x20|\x20react-admin-component\x20|\x20vue-unisass-component\x20|\x20jjb-common-decorator\x20|\x20jjb-dva-runtime\x20|\x20jjb-common-lib>。','forEach','f_resolve_install_resources','writeFileSync','\x22,\x22version\x22:\x22','installResources','jjb-common-decorator','727374UUBCkC','/repository/archive.zip?private_token='];a11_0x548e=function(){return _0x1d0f3e;};return a11_0x548e();}const a11_0x54c3ed=a11_0x2708;(function(_0x3c8962,_0x50603f){const _0xa20bb7=a11_0x2708,_0x507eb5=_0x3c8962();while(!![]){try{const _0x1bd0f3=-parseInt(_0xa20bb7(0x76))/0x1*(parseInt(_0xa20bb7(0x88))/0x2)+parseInt(_0xa20bb7(0x74))/0x3*(-parseInt(_0xa20bb7(0x91))/0x4)+parseInt(_0xa20bb7(0x65))/0x5*(-parseInt(_0xa20bb7(0x99))/0x6)+-parseInt(_0xa20bb7(0x8d))/0x7+-parseInt(_0xa20bb7(0x9f))/0x8+parseInt(_0xa20bb7(0x9b))/0x9*(parseInt(_0xa20bb7(0x83))/0xa)+parseInt(_0xa20bb7(0x87))/0xb*(parseInt(_0xa20bb7(0x7f))/0xc);if(_0x1bd0f3===_0x50603f)break;else _0x507eb5['push'](_0x507eb5['shift']());}catch(_0x19c263){_0x507eb5['push'](_0x507eb5['shift']());}}}(a11_0x548e,0xe635b));const fs=require('fs'),os=require('os'),{GIT_HOST,GIT_TEMP_DIR,CLOUD_PROJECT}=require('./config');exports[a11_0x54c3ed(0x85)]=function(_0x5c93ca){const _0x4ecb4a=a11_0x54c3ed;if(fs['existsSync'](_0x5c93ca)){const _0x3c9acd=fs['readdirSync'](_0x5c93ca);for(let _0x343a05=0x0;_0x343a05<_0x3c9acd[_0x4ecb4a(0x9d)];_0x343a05++){const _0x9d9c32=_0x3c9acd[_0x343a05],_0x248c02=_0x5c93ca+'/'+_0x9d9c32;fs['statSync'](_0x248c02)[_0x4ecb4a(0x6e)]()?(exports[_0x4ecb4a(0x85)](_0x248c02),fs['rmdirSync'](_0x248c02)):fs[_0x4ecb4a(0x80)](_0x248c02);}}},exports[a11_0x54c3ed(0xa6)]=function(_0x29381c=[]){const _0xc2018=a11_0x54c3ed;return _0x29381c[_0xc2018(0x8b)](_0x4afb0a=>{const _0x269582=_0xc2018,_0x43e3e9=CLOUD_PROJECT[_0x4afb0a[_0x269582(0x78)]]||undefined,_0x2a788c=os[_0x269582(0x7e)]();return{'path':_0x2a788c+'\x5c'+GIT_TEMP_DIR+'\x5c'+_0x4afb0a[_0x269582(0x78)]+_0x269582(0x70),'compress':_0x2a788c+'\x5c'+GIT_TEMP_DIR+'\x5c'+_0x4afb0a[_0x269582(0x78)]+_0x269582(0x9c),'repository':GIT_HOST+_0x269582(0x81)+_0x43e3e9[_0x269582(0x6b)]+_0x269582(0x9a)+_0x43e3e9['token']+'&ref=master'};});},exports['f_scan_jjb_config_json']=function(_0x152ac2){const _0x2b250d=a11_0x54c3ed;return fs[_0x2b250d(0x72)](_0x152ac2+'\x5cjjb.config.json');},exports[a11_0x54c3ed(0x66)]=function(_0x1ae668){const _0x4c3a0d=a11_0x54c3ed;let _0x23d97d={};try{_0x23d97d=JSON[_0x4c3a0d(0xa0)](fs['readFileSync'](_0x1ae668+_0x4c3a0d(0x9e))[_0x4c3a0d(0x67)]());}catch(_0x577161){console[_0x4c3a0d(0x69)](_0x4c3a0d(0xa1)),process[_0x4c3a0d(0xa8)](0x0);}!(_0x4c3a0d(0x75)in _0x23d97d)&&(console[_0x4c3a0d(0x69)](_0x4c3a0d(0x8a)),process[_0x4c3a0d(0xa8)](0x0));!(_0x4c3a0d(0xa4)in _0x23d97d)&&(console['log'](_0x4c3a0d(0x8e)),process[_0x4c3a0d(0xa8)](0x0));!(_0x4c3a0d(0x97)in _0x23d97d)&&(console[_0x4c3a0d(0x69)](_0x4c3a0d(0x68)),process[_0x4c3a0d(0xa8)](0x0));typeof _0x23d97d[_0x4c3a0d(0x75)]!==_0x4c3a0d(0x89)&&(console['log']('【Error】:[jjb.config.json.projectType]类型是一个string。'),process[_0x4c3a0d(0xa8)](0x0));!['multi',_0x4c3a0d(0x7a),'uniapp','micro-spa']['includes'](_0x23d97d[_0x4c3a0d(0x75)])&&(console['log'](_0x4c3a0d(0x71)),process[_0x4c3a0d(0xa8)](0x0));typeof _0x23d97d['installTarget']!==_0x4c3a0d(0x89)&&(console[_0x4c3a0d(0x69)](_0x4c3a0d(0x84)),process[_0x4c3a0d(0xa8)](0x0));![_0x4c3a0d(0xa7),'src'][_0x4c3a0d(0xa3)](_0x23d97d[_0x4c3a0d(0xa4)])&&(console['log'](_0x4c3a0d(0x73)),process[_0x4c3a0d(0xa8)](0x0));!Array[_0x4c3a0d(0x64)](_0x23d97d[_0x4c3a0d(0x97)])&&(console[_0x4c3a0d(0x69)](_0x4c3a0d(0x6f)),process[_0x4c3a0d(0xa8)](0x0));_0x23d97d[_0x4c3a0d(0x97)][_0x4c3a0d(0x9d)]===0x0&&(console[_0x4c3a0d(0x69)](_0x4c3a0d(0x82)),process[_0x4c3a0d(0xa8)](0x0));const _0x5cf7b5=exports['f_resolve_install_resources'](_0x23d97d[_0x4c3a0d(0x97)]);return _0x5cf7b5[_0x4c3a0d(0x8b)](_0xfe9119=>_0xfe9119[_0x4c3a0d(0x78)])[_0x4c3a0d(0x90)](_0x237aec=>![_0x4c3a0d(0x8f),'jjb-dva-runtime','jjb-common-lib',_0x4c3a0d(0x98),'react-admin-component',_0x4c3a0d(0x7b)]['includes'](_0x237aec))[_0x4c3a0d(0x9d)]!==0x0&&(console[_0x4c3a0d(0x69)](_0x4c3a0d(0x92)),process[_0x4c3a0d(0xa8)](0x0)),_0x23d97d[_0x4c3a0d(0x97)]=_0x5cf7b5,_0x23d97d;},exports['f_create_package_json']=function(_0x241c5e,_0x17d3c2,_0xb0e1a5){const _0x336df9=a11_0x54c3ed;fs['writeFileSync'](_0x241c5e+_0x336df9(0x86),'{\x22name\x22:\x22'+_0x17d3c2+_0x336df9(0x96)+_0xb0e1a5+_0x336df9(0x7c));},exports[a11_0x54c3ed(0x94)]=function(_0x18450c=[]){const _0x4ce0b2=a11_0x54c3ed,_0x1e59b0=[];return Array['isArray'](_0x18450c)&&_0x18450c[_0x4ce0b2(0x93)](_0x4461c4=>{const _0x34a26a=_0x4ce0b2;if(Array[_0x34a26a(0x64)](_0x4461c4)){const [_0x413474,_0x11efad=[]]=_0x4461c4;_0x1e59b0['push']({'name':_0x413474,'importList':_0x11efad});}else _0x1e59b0['push']({'name':_0x4461c4,'importList':[]});}),_0x1e59b0;},exports[a11_0x54c3ed(0x8c)]=function(_0x2aa61b,_0x3229d9,_0x1c41ad){const _0x17cc04=a11_0x54c3ed,_0x223de4=JSON[_0x17cc04(0xa0)](fs[_0x17cc04(0x7d)](_0x2aa61b)['toString']());_0x223de4['dependencies'][_0x3229d9]=_0x1c41ad,fs[_0x17cc04(0x95)](_0x2aa61b,JSON[_0x17cc04(0x6c)](_0x223de4,null,0x2));},exports[a11_0x54c3ed(0x79)]=function(_0x4898ee,_0x27b4c9){const _0x5efd38=a11_0x54c3ed;fs[_0x5efd38(0x77)](_0x4898ee)[_0x5efd38(0x93)](_0x27cfa6=>{const _0x446548=_0x5efd38,_0x12b1aa=_0x4898ee+'\x5c'+_0x27cfa6,_0x3ddce1=_0x27b4c9+'\x5c'+_0x27cfa6;fs['statSync'](_0x12b1aa)[_0x446548(0x6e)]()?(fs[_0x446548(0x6d)](_0x3ddce1),exports['f_file_copy'](_0x12b1aa,_0x3ddce1)):fs[_0x446548(0x95)](_0x3ddce1,fs[_0x446548(0x7d)](_0x12b1aa)[_0x446548(0x67)]());});},exports[a11_0x54c3ed(0xa5)]=function(_0x5c1be3=[],_0x719a2e){const _0x59556e=a11_0x54c3ed;_0x5c1be3[_0x59556e(0x93)](_0x378320=>{const _0x5b54b3=_0x59556e,_0x1b1ec9=_0x719a2e+_0x378320[_0x5b54b3(0x6a)];if(fs[_0x5b54b3(0x72)](_0x1b1ec9)){let _0x2f5356=fs[_0x5b54b3(0x7d)](_0x1b1ec9)[_0x5b54b3(0x67)]();_0x378320[_0x5b54b3(0xa2)][_0x5b54b3(0x93)](_0x296c76=>{const _0x536195=_0x5b54b3;_0x2f5356=_0x2f5356[_0x536195(0xa2)](_0x296c76[0x0],_0x296c76[0x1]);}),fs[_0x5b54b3(0x95)](_0x1b1ec9,_0x2f5356);}});};
@@ -1,80 +1 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
- const utils = require('./util.js');
4
-
5
- //项目路径
6
- let projectPath = '';
7
- //项目脚手架路径
8
- let vesselPath = '';
9
- //input传入参数 指令:地区:环境 start:chongqing:dev
10
- let commandArr = [];
11
- //application数据
12
- const fromFileData = {};
13
- const applicationJson = {};
14
-
15
- /**
16
- * input 指令:地区:环境 start:chongqing:dev
17
- */
18
- module.exports = (input, source) => {
19
- commandArr = input.split(':');
20
- projectPath = path.resolve('./project');
21
- vesselPath = path.resolve('./vessel/src');
22
- let applicationPath = vesselPath;
23
- if (source === 'mp') {
24
- applicationPath = vesselPath + '/application';
25
- utils.CreatePaths(vesselPath, ['application']);
26
- }
27
- const inputRegion = commandArr[1];
28
- const settingJson = JSON.parse(fs.readFileSync(`${projectPath}/${inputRegion}/setting.json`).toString());
29
- TileItems(settingJson.items, () => {
30
-
31
- fromFileData.router.forEach(fromItem => {
32
- const itemPathArr = fromItem.pathAdr.split(fromItem.region);
33
- const filePathArr = itemPathArr[1].split('/');
34
- const application = filePathArr[1];
35
- if (!applicationJson[application]) {
36
- applicationJson[application] = {
37
- routerConfig: [],
38
- routerPath: []
39
- };
40
- }
41
- applicationJson[application].routerConfig.push(`{ path: '${fromItem.path}', component: () => import('${fromItem.file}') }`);
42
- applicationJson[application].routerPath.push(fromItem.path);
43
-
44
- let applicationStr = filePathArr.join('/');
45
-
46
- const strArr = applicationStr.split('/');
47
- utils.CreatePaths(applicationPath, strArr.slice(0, strArr.length - 1)).then(() => {
48
- const fileContent = fs.readFileSync(fromItem.pathAdr).toString();
49
- fs.writeFileSync(`${vesselPath}/${applicationStr}`, fileContent);
50
- });
51
-
52
- });
53
-
54
- });
55
- };
56
-
57
- /**
58
- * 平铺,展开所有路径
59
- * @param items
60
- * @param cb
61
- * @constructor
62
- */
63
- function TileItems (items, cb) {
64
- items.forEach((item, index) => {
65
- const region = item.region;
66
- item.from.forEach((from, fromIndex) => {
67
- const pathArr = [];
68
- utils.DeepScanner(projectPath + '/' + region + '/' + from.file, pathArr);
69
- const newPathArr = pathArr.map(pathItem => ({ region, pathAdr: pathItem, ...from }));
70
- if (!fromFileData[from.fileType]) {
71
- fromFileData[from.fileType] = newPathArr;
72
- } else {
73
- fromFileData[from.fileType] = fromFileData[from.fileType].concat(newPathArr);
74
- }
75
- if (index === items.length - 1 && fromIndex === item.from.length - 1) {
76
- cb();
77
- }
78
- });
79
- })
80
- }
1
+ const a12_0x440ce6=a12_0x4e4c;(function(_0x440654,_0x32bb77){const _0x1b3b03=a12_0x4e4c,_0x4cec22=_0x440654();while(!![]){try{const _0x2bf9b0=-parseInt(_0x1b3b03(0x1c4))/0x1+-parseInt(_0x1b3b03(0x1b3))/0x2*(-parseInt(_0x1b3b03(0x1c5))/0x3)+parseInt(_0x1b3b03(0x1b5))/0x4*(-parseInt(_0x1b3b03(0x1b6))/0x5)+-parseInt(_0x1b3b03(0x1a3))/0x6+parseInt(_0x1b3b03(0x1b4))/0x7*(parseInt(_0x1b3b03(0x1b2))/0x8)+-parseInt(_0x1b3b03(0x1bb))/0x9+parseInt(_0x1b3b03(0x1af))/0xa;if(_0x2bf9b0===_0x32bb77)break;else _0x4cec22['push'](_0x4cec22['shift']());}catch(_0x35eb64){_0x4cec22['push'](_0x4cec22['shift']());}}}(a12_0xab99,0x59805));function a12_0x4e4c(_0x18c7c1,_0xb69e37){const _0xab994a=a12_0xab99();return a12_0x4e4c=function(_0x4e4ced,_0x121054){_0x4e4ced=_0x4e4ced-0x1a1;let _0x4c68df=_0xab994a[_0x4e4ced];return _0x4c68df;},a12_0x4e4c(_0x18c7c1,_0xb69e37);}const fs=require('fs'),path=require(a12_0x440ce6(0x1c0)),utils=require('./util.js');let projectPath='',vesselPath='',commandArr=[];const fromFileData={},applicationJson={};module[a12_0x440ce6(0x1a1)]=(_0x1ae302,_0x538758)=>{const _0x2bb05f=a12_0x440ce6;commandArr=_0x1ae302['split'](':'),projectPath=path[_0x2bb05f(0x1c1)](_0x2bb05f(0x1ae)),vesselPath=path[_0x2bb05f(0x1c1)]('./vessel/src');let _0x4b0105=vesselPath;_0x538758==='mp'&&(_0x4b0105=vesselPath+_0x2bb05f(0x1be),utils[_0x2bb05f(0x1ab)](vesselPath,[_0x2bb05f(0x1c9)]));const _0x1a9e06=commandArr[0x1],_0x502dd5=JSON[_0x2bb05f(0x1c6)](fs['readFileSync'](projectPath+'/'+_0x1a9e06+_0x2bb05f(0x1a8))[_0x2bb05f(0x1bc)]());TileItems(_0x502dd5['items'],()=>{const _0x5291b3=_0x2bb05f;fromFileData[_0x5291b3(0x1ba)][_0x5291b3(0x1b0)](_0x1e1eb0=>{const _0x4037bc=_0x5291b3,_0x211e1a=_0x1e1eb0[_0x4037bc(0x1c7)][_0x4037bc(0x1ac)](_0x1e1eb0[_0x4037bc(0x1a2)]),_0x2713ec=_0x211e1a[0x1][_0x4037bc(0x1ac)]('/'),_0x1b3356=_0x2713ec[0x1];!applicationJson[_0x1b3356]&&(applicationJson[_0x1b3356]={'routerConfig':[],'routerPath':[]});applicationJson[_0x1b3356][_0x4037bc(0x1c8)][_0x4037bc(0x1b1)](_0x4037bc(0x1b7)+_0x1e1eb0['path']+_0x4037bc(0x1c2)+_0x1e1eb0['file']+_0x4037bc(0x1c3)),applicationJson[_0x1b3356][_0x4037bc(0x1aa)][_0x4037bc(0x1b1)](_0x1e1eb0[_0x4037bc(0x1c0)]);let _0x276872=_0x2713ec[_0x4037bc(0x1b9)]('/');const _0x5c9012=_0x276872[_0x4037bc(0x1ac)]('/');utils[_0x4037bc(0x1ab)](_0x4b0105,_0x5c9012[_0x4037bc(0x1bd)](0x0,_0x5c9012['length']-0x1))['then'](()=>{const _0x1f82b5=_0x4037bc,_0x4d9cd=fs[_0x1f82b5(0x1a6)](_0x1e1eb0[_0x1f82b5(0x1c7)])[_0x1f82b5(0x1bc)]();fs[_0x1f82b5(0x1ca)](vesselPath+'/'+_0x276872,_0x4d9cd);});});});};function a12_0xab99(){const _0x560150=['./project','14214730WPfHBS','forEach','push','8fCmkYG','8558DvLUov','1631511oXppei','327424WfTlMH','10yDqvfS','{\x20path:\x20\x27','DeepScanner','join','router','4407327amzAfr','toString','slice','/application','file','path','resolve','\x27,\x20component:\x20()\x20=>\x20import(\x27','\x27)\x20}','662911PRuQhJ','123vIFoex','parse','pathAdr','routerConfig','application','writeFileSync','exports','region','882372YyfhMW','fileType','concat','readFileSync','length','/setting.json','map','routerPath','CreatePaths','split','from'];a12_0xab99=function(){return _0x560150;};return a12_0xab99();}function TileItems(_0x929091,_0x34ab06){_0x929091['forEach']((_0x15a0f9,_0x398591)=>{const _0x4e8a15=a12_0x4e4c,_0x3ef8d7=_0x15a0f9['region'];_0x15a0f9[_0x4e8a15(0x1ad)][_0x4e8a15(0x1b0)]((_0x536268,_0x12458e)=>{const _0x10be13=_0x4e8a15,_0x110ba2=[];utils[_0x10be13(0x1b8)](projectPath+'/'+_0x3ef8d7+'/'+_0x536268[_0x10be13(0x1bf)],_0x110ba2);const _0x120e86=_0x110ba2[_0x10be13(0x1a9)](_0x1c2fb5=>({'region':_0x3ef8d7,'pathAdr':_0x1c2fb5,..._0x536268}));!fromFileData[_0x536268[_0x10be13(0x1a4)]]?fromFileData[_0x536268[_0x10be13(0x1a4)]]=_0x120e86:fromFileData[_0x536268['fileType']]=fromFileData[_0x536268[_0x10be13(0x1a4)]][_0x10be13(0x1a5)](_0x120e86),_0x398591===_0x929091[_0x10be13(0x1a7)]-0x1&&_0x12458e===_0x15a0f9[_0x10be13(0x1ad)][_0x10be13(0x1a7)]-0x1&&_0x34ab06();});});}
@@ -1,94 +1 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
- const os = require('os');
5
- const path = require('path');
6
- const utils = require('./util');
7
- const request = require('request');
8
- const compressing = require('compressing');
9
-
10
- //临时存放目录
11
- const GIT_TEMP_DIR = 'jjbAssembly';
12
- //GIT仓库
13
- const GIT_HOST = 'http://192.168.1.242:10985';
14
- //项目列表,后期可存库
15
- const CLOUD_PROJECT = {
16
- 'common': {
17
- token: 'G4HJRsHr9D7Ssmixegw2',
18
- projectId: 279,
19
- localName: 'common'
20
- },
21
- 'react-admin-component': {
22
- token: 'FT3pKzxpRynFkmddJ9Bs',
23
- projectId: 340,
24
- localName: 'components'
25
- }
26
- };
27
-
28
- module.exports = input => {
29
- const dirName = input;
30
- const currDir = path.resolve('./');
31
- try {
32
- if (fs.statSync(currDir + '\\src')) {
33
- const srcDir = currDir + '\\src';
34
- const cloudObj = CLOUD_PROJECT[ dirName ] || undefined;
35
- if (cloudObj) {
36
- const tmpDir = os.tmpdir();
37
- const dirPath = tmpDir + `/${GIT_TEMP_DIR}/${dirName}.zip`;
38
- const dirUnzip = `${tmpDir}/${GIT_TEMP_DIR}/unzip/`;
39
- utils.DeleteDirAllFile(`${tmpDir}/${GIT_TEMP_DIR}`, () => {
40
- fs.mkdirSync(`${tmpDir}/${GIT_TEMP_DIR}`);
41
- let stream = fs.createWriteStream(dirPath);
42
- request(`${GIT_HOST}/api/v4/projects/${cloudObj.projectId}/repository/archive.zip?private_token=${cloudObj.token}&ref=master`).pipe(stream)
43
- .on('close', () => {
44
- fs.mkdirSync(dirUnzip);
45
- compressing.zip.uncompress(dirPath, dirUnzip)
46
- .then(() => {
47
- setTimeout(() => {
48
- const srcAll = fs.readdirSync(dirUnzip);
49
- srcAll.forEach(dirName => {
50
- if (dirName.indexOf('-master-') !== -1) {
51
- const nowPath = srcDir + '\\' + cloudObj.localName;
52
- utils.DeleteDirAllFile(nowPath, () => {
53
- fs.mkdirSync(nowPath);
54
- utils.CopyFolder(dirUnzip + dirName, nowPath);
55
- setTimeout(() => {
56
- const isMutilate = fs.existsSync(srcDir + '\\' + 'application');
57
- if (!isMutilate) {
58
- const commonToolsPath = srcDir + '\\' + 'common\\tools\\index.js';
59
- const commonWebsitePath = srcDir + '\\' + 'common\\website\\index.js';
60
- let commonToolsFile = fs.readFileSync(commonToolsPath).toString();
61
- let commonWebsiteFile = fs.readFileSync(commonWebsitePath).toString();
62
- commonToolsFile = commonToolsFile.replace('return __planA();', 'return process.env;');
63
- commonWebsiteFile = commonWebsiteFile.replace(/const\srelation\s=\srequire\(`~\/application\/\${module.code}\/enumerate\/menu`\)\.default;/, "const relation = require('~/enumerate/menu').default;");
64
- fs.writeFileSync(commonToolsPath, commonToolsFile);
65
- fs.writeFileSync(commonWebsitePath, commonWebsiteFile);
66
- fs.writeFileSync(`${srcDir}\\common\\dva\\automatic\\router.js`, fs.readFileSync(`${__dirname}\\cli.dva.router.spa.txt`).toString());
67
- fs.writeFileSync(`${srcDir}\\common\\dva\\automatic\\register.js`, fs.readFileSync(`${__dirname}\\cli.dva.register.spa.txt`).toString());
68
- } else {
69
- fs.exists(srcDir + '\\' + 'common\\dva\\automatic\\index.js', has => {
70
- if (has) {
71
- fs.readdirSync(srcDir + '\\' + 'common\\dva\\automatic').forEach(p => {
72
- fs.unlinkSync(srcDir + '\\' + 'common\\dva\\automatic\\' + p);
73
- });
74
- fs.rmdirSync(srcDir + '\\' + 'common\\dva\\automatic');
75
- }
76
- });
77
- }
78
- }, 1000);
79
- });
80
- }
81
- });
82
- console.log(dirName + '-文件下载完毕');
83
- }, 2000);
84
- });
85
- });
86
- });
87
- } else {
88
- console.error('【Error】: 未获取到项目 ' + dirName);
89
- }
90
- }
91
- } catch (e) {
92
- console.error('【Error】: 当前目录不存在src子目录,无法完成pull操作。');
93
- }
94
- };
1
+ 'use strict';const a13_0x5e63d7=a13_0x3cea;(function(_0x1b9563,_0x3c6d62){const _0x2ff3d3=a13_0x3cea,_0x3e3d65=_0x1b9563();while(!![]){try{const _0x15e452=parseInt(_0x2ff3d3(0x20e))/0x1*(-parseInt(_0x2ff3d3(0x20a))/0x2)+-parseInt(_0x2ff3d3(0x200))/0x3*(-parseInt(_0x2ff3d3(0x214))/0x4)+-parseInt(_0x2ff3d3(0x20f))/0x5+-parseInt(_0x2ff3d3(0x1ec))/0x6*(-parseInt(_0x2ff3d3(0x1e7))/0x7)+-parseInt(_0x2ff3d3(0x211))/0x8*(-parseInt(_0x2ff3d3(0x20d))/0x9)+-parseInt(_0x2ff3d3(0x1f2))/0xa+-parseInt(_0x2ff3d3(0x1fe))/0xb*(-parseInt(_0x2ff3d3(0x21f))/0xc);if(_0x15e452===_0x3c6d62)break;else _0x3e3d65['push'](_0x3e3d65['shift']());}catch(_0x33996a){_0x3e3d65['push'](_0x3e3d65['shift']());}}}(a13_0x3ef0,0x3cc5b));const fs=require('fs'),os=require('os'),path=require(a13_0x5e63d7(0x218)),utils=require(a13_0x5e63d7(0x1ee)),request=require(a13_0x5e63d7(0x1fd)),compressing=require(a13_0x5e63d7(0x210)),GIT_TEMP_DIR=a13_0x5e63d7(0x1f5),GIT_HOST=a13_0x5e63d7(0x1fb),CLOUD_PROJECT={'common':{'token':'G4HJRsHr9D7Ssmixegw2','projectId':0x117,'localName':a13_0x5e63d7(0x209)},'react-admin-component':{'token':a13_0x5e63d7(0x1f7),'projectId':0x154,'localName':'components'}};module[a13_0x5e63d7(0x202)]=_0x542146=>{const _0x3d626=a13_0x5e63d7,_0x4c7031=_0x542146,_0x3e43de=path[_0x3d626(0x219)]('./');try{if(fs[_0x3d626(0x21c)](_0x3e43de+_0x3d626(0x207))){const _0x2caa96=_0x3e43de+'\x5csrc',_0x557771=CLOUD_PROJECT[_0x4c7031]||undefined;if(_0x557771){const _0x4a0a4c=os[_0x3d626(0x1e6)](),_0x5abc53=_0x4a0a4c+('/'+GIT_TEMP_DIR+'/'+_0x4c7031+_0x3d626(0x1ea)),_0x37a7cf=_0x4a0a4c+'/'+GIT_TEMP_DIR+_0x3d626(0x1f6);utils[_0x3d626(0x1fa)](_0x4a0a4c+'/'+GIT_TEMP_DIR,()=>{const _0x543438=_0x3d626;fs[_0x543438(0x212)](_0x4a0a4c+'/'+GIT_TEMP_DIR);let _0x34bba=fs[_0x543438(0x203)](_0x5abc53);request(GIT_HOST+'/api/v4/projects/'+_0x557771[_0x543438(0x21b)]+'/repository/archive.zip?private_token='+_0x557771[_0x543438(0x1f9)]+_0x543438(0x204))[_0x543438(0x1f0)](_0x34bba)['on']('close',()=>{const _0x26cbb1=_0x543438;fs[_0x26cbb1(0x212)](_0x37a7cf),compressing[_0x26cbb1(0x1e9)][_0x26cbb1(0x1f8)](_0x5abc53,_0x37a7cf)['then'](()=>{setTimeout(()=>{const _0x597274=a13_0x3cea,_0x4654d0=fs[_0x597274(0x1e8)](_0x37a7cf);_0x4654d0[_0x597274(0x201)](_0x494949=>{const _0x3b59af=_0x597274;if(_0x494949[_0x3b59af(0x216)]('-master-')!==-0x1){const _0x181008=_0x2caa96+'\x5c'+_0x557771[_0x3b59af(0x20b)];utils[_0x3b59af(0x1fa)](_0x181008,()=>{const _0x2febfd=_0x3b59af;fs[_0x2febfd(0x212)](_0x181008),utils[_0x2febfd(0x223)](_0x37a7cf+_0x494949,_0x181008),setTimeout(()=>{const _0x4a6676=_0x2febfd,_0x20e7ec=fs[_0x4a6676(0x1fc)](_0x2caa96+'\x5c'+_0x4a6676(0x1ed));if(!_0x20e7ec){const _0x1e437d=_0x2caa96+'\x5c'+_0x4a6676(0x1e4),_0x468980=_0x2caa96+'\x5c'+_0x4a6676(0x1f1);let _0x51b7f4=fs[_0x4a6676(0x21e)](_0x1e437d)[_0x4a6676(0x220)](),_0x15f350=fs['readFileSync'](_0x468980)['toString']();_0x51b7f4=_0x51b7f4[_0x4a6676(0x206)](_0x4a6676(0x205),_0x4a6676(0x21a)),_0x15f350=_0x15f350[_0x4a6676(0x206)](/const\srelation\s=\srequire\(`~\/application\/\${module.code}\/enumerate\/menu`\)\.default;/,_0x4a6676(0x217)),fs[_0x4a6676(0x222)](_0x1e437d,_0x51b7f4),fs[_0x4a6676(0x222)](_0x468980,_0x15f350),fs['writeFileSync'](_0x2caa96+_0x4a6676(0x213),fs['readFileSync'](__dirname+_0x4a6676(0x1f4))[_0x4a6676(0x220)]()),fs[_0x4a6676(0x222)](_0x2caa96+_0x4a6676(0x215),fs['readFileSync'](__dirname+_0x4a6676(0x1ef))['toString']());}else fs[_0x4a6676(0x1eb)](_0x2caa96+'\x5c'+_0x4a6676(0x21d),_0x402c70=>{const _0x3d99f1=_0x4a6676;_0x402c70&&(fs[_0x3d99f1(0x1e8)](_0x2caa96+'\x5c'+_0x3d99f1(0x221))[_0x3d99f1(0x201)](_0x1d7a3d=>{const _0x3a41dc=_0x3d99f1;fs['unlinkSync'](_0x2caa96+'\x5c'+_0x3a41dc(0x208)+_0x1d7a3d);}),fs[_0x3d99f1(0x1f3)](_0x2caa96+'\x5c'+'common\x5cdva\x5cautomatic'));});},0x3e8);});}}),console[_0x597274(0x20c)](_0x4c7031+_0x597274(0x1ff));},0x7d0);});});});}else console[_0x3d626(0x1e5)]('【Error】:\x20未获取到项目\x20'+_0x4c7031);}}catch(_0x31ffc2){console[_0x3d626(0x1e5)]('【Error】:\x20当前目录不存在src子目录,无法完成pull操作。');}};function a13_0x3cea(_0x3050f6,_0x5a4348){const _0x3ef0c3=a13_0x3ef0();return a13_0x3cea=function(_0x3ceaf0,_0x2f73c4){_0x3ceaf0=_0x3ceaf0-0x1e4;let _0xcb3f28=_0x3ef0c3[_0x3ceaf0];return _0xcb3f28;},a13_0x3cea(_0x3050f6,_0x5a4348);}function a13_0x3ef0(){const _0x36eff9=['readFileSync','12LtVpCI','toString','common\x5cdva\x5cautomatic','writeFileSync','CopyFolder','common\x5ctools\x5cindex.js','error','tmpdir','372421XLTihJ','readdirSync','zip','.zip','exists','36DxhupZ','application','./util','\x5ccli.dva.register.spa.txt','pipe','common\x5cwebsite\x5cindex.js','221330hRDPZW','rmdirSync','\x5ccli.dva.router.spa.txt','jjbAssembly','/unzip/','FT3pKzxpRynFkmddJ9Bs','uncompress','token','DeleteDirAllFile','http://192.168.1.242:10985','existsSync','request','249271SnduQh','-文件下载完毕','3hiHJeP','forEach','exports','createWriteStream','&ref=master','return\x20__planA();','replace','\x5csrc','common\x5cdva\x5cautomatic\x5c','common','2iYAQJN','localName','log','18VVkqXd','226459VZMjZG','2165155QWYhHE','compressing','481904MfdyNc','mkdirSync','\x5ccommon\x5cdva\x5cautomatic\x5crouter.js','1872764mFgsIO','\x5ccommon\x5cdva\x5cautomatic\x5cregister.js','indexOf','const\x20relation\x20=\x20require(\x27~/enumerate/menu\x27).default;','path','resolve','return\x20process.env;','projectId','statSync','common\x5cdva\x5cautomatic\x5cindex.js'];a13_0x3ef0=function(){return _0x36eff9;};return a13_0x3ef0();}