jjb-cmd 2.0.9 → 2.1.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.
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();}