meixifrontserve 0.1.0 → 0.1.2

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/bin/index.js CHANGED
@@ -5,6 +5,8 @@ const EnvByBetaController = require('../scripts/envByBetaController');
5
5
  const EnvByPreController = require('../scripts/envByPreController');
6
6
  const EnvByProdController = require('../scripts/envByProdController')
7
7
 
8
+ const checkUpdate = require('../scripts/checkUpdate');
9
+
8
10
 
9
11
  // 开发环境
10
12
  program.option('--name <char>').option('-serve');
@@ -22,8 +24,12 @@ const run = async () => {
22
24
 
23
25
  // 如果是开发
24
26
  if (programOps.Serve) {
25
- let envByServerController = new EnvByServerController(name);
26
- await envByServerController.onStart();
27
+ // 检查更新
28
+ let flag = await checkUpdate();
29
+ if (flag) {
30
+ let envByServerController = new EnvByServerController(name);
31
+ await envByServerController.onStart();
32
+ }
27
33
 
28
34
  } else if (programOps.Beta) {
29
35
  let envByBetaController = new EnvByBetaController(name, 'beta');
@@ -47,7 +47,7 @@
47
47
  "vue-router": "3.0.2",
48
48
  "vuedraggable": "^2.24.3",
49
49
  "vuex": "^3.4.0",
50
- "meixioacomponent": "^0.9.71"
50
+ "meixioacomponent": "^0.9.72"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@vue/cli-plugin-babel": "~4.5.18",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meixifrontserve",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "private": false,
@@ -12,7 +12,8 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "commander": "^10.0.0",
15
- "shelljs": "^0.8.5"
15
+ "shelljs": "^0.8.5",
16
+ "needle": "^3.2.0"
16
17
  },
17
18
  "keywords": [],
18
19
  "author": "yuri_star",
@@ -0,0 +1,74 @@
1
+ const needle = require('needle');
2
+ const options = require('../package.json');
3
+ const child_process = require("child_process");
4
+
5
+
6
+ const checkUpdate = async () => {
7
+ console.log('正在获取网络版本号请稍等');
8
+ return new Promise(async (resolve, reject) => {
9
+ needle.get('https://registry.npmjs.org/meixifrontserve', (error, res) => {
10
+ if (error) {
11
+ resolve(false);
12
+ }
13
+ const netVer = arrayToNumber(res.body[`dist-tags`].latest.split('.'));
14
+ const localVer = arrayToNumber(options.version.split('.'));
15
+ if (netVer === localVer) {
16
+ resolve(true);
17
+ } else {
18
+ if (netVer > localVer) {
19
+
20
+ // 下载最新的依赖
21
+
22
+ child_process.exec(`${returnCmd()}`, (error, stdout, stderr) => {
23
+
24
+ if (!error) {
25
+ console.log('依赖下载成功,请重新执行命令。');
26
+ process.exit();
27
+
28
+ } else {
29
+ console.log(`依赖下载失败,请手动执行命令${returnCmd()}`);
30
+ process.exit();
31
+ }
32
+ }
33
+ )
34
+
35
+
36
+ }
37
+ }
38
+ })
39
+ })
40
+ }
41
+
42
+
43
+ const arrayToNumber = (array) => {
44
+
45
+ let str = '';
46
+ if (array instanceof Array) {
47
+ array.forEach(item => {
48
+ str += item;
49
+ })
50
+ } else {
51
+ return null;
52
+ }
53
+
54
+ return parseInt(str);
55
+ }
56
+
57
+
58
+ //
59
+
60
+ const returnCmd = () => {
61
+ switch (process.platform) {
62
+ case 'darwin':
63
+ return 'sudo npm install meixifrontserve@latest -g'
64
+ case "win32":
65
+ return 'npm install meixifrontserve@latest -g'
66
+
67
+ default:
68
+ return 'npm install meixifrontserve@latest -g'
69
+ }
70
+
71
+ }
72
+
73
+
74
+ module.exports = checkUpdate