seimin 3 年之前
父節點
當前提交
0ad9739731
共有 4 個文件被更改,包括 286 次插入13 次删除
  1. 196 12
      package-lock.json
  2. 4 1
      package.json
  3. 43 0
      upload/development.js
  4. 43 0
      upload/production.js

+ 196 - 12
package-lock.json

@@ -50,6 +50,7 @@
50
         "rimraf": "^2.6.0",
50
         "rimraf": "^2.6.0",
51
         "semver": "^5.3.0",
51
         "semver": "^5.3.0",
52
         "shelljs": "^0.7.6",
52
         "shelljs": "^0.7.6",
53
+        "ssh2-sftp-client": "^7.2.0",
53
         "stylus": "^0.54.5",
54
         "stylus": "^0.54.5",
54
         "stylus-loader": "^2.1.1",
55
         "stylus-loader": "^2.1.1",
55
         "uglifyjs-webpack-plugin": "^1.1.1",
56
         "uglifyjs-webpack-plugin": "^1.1.1",
@@ -333,7 +334,7 @@
333
       "version": "0.2.4",
334
       "version": "0.2.4",
334
       "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
335
       "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
335
       "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
336
       "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
336
-      "optional": true,
337
+      "devOptional": true,
337
       "dependencies": {
338
       "dependencies": {
338
         "safer-buffer": "~2.1.0"
339
         "safer-buffer": "~2.1.0"
339
       }
340
       }
@@ -1450,7 +1451,7 @@
1450
       "version": "1.0.2",
1451
       "version": "1.0.2",
1451
       "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
1452
       "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
1452
       "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1453
       "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1453
-      "optional": true,
1454
+      "devOptional": true,
1454
       "dependencies": {
1455
       "dependencies": {
1455
         "tweetnacl": "^0.14.3"
1456
         "tweetnacl": "^0.14.3"
1456
       }
1457
       }
@@ -2513,6 +2514,20 @@
2513
         "js-yaml": "bin/js-yaml.js"
2514
         "js-yaml": "bin/js-yaml.js"
2514
       }
2515
       }
2515
     },
2516
     },
2517
+    "node_modules/cpu-features": {
2518
+      "version": "0.0.2",
2519
+      "resolved": "https://registry.npmmirror.com/cpu-features/download/cpu-features-0.0.2.tgz",
2520
+      "integrity": "sha1-n2NhVvEVX9BL26oCi7PC++886no=",
2521
+      "dev": true,
2522
+      "hasInstallScript": true,
2523
+      "optional": true,
2524
+      "dependencies": {
2525
+        "nan": "^2.14.1"
2526
+      },
2527
+      "engines": {
2528
+        "node": ">=8.0.0"
2529
+      }
2530
+    },
2516
     "node_modules/create-ecdh": {
2531
     "node_modules/create-ecdh": {
2517
       "version": "4.0.3",
2532
       "version": "4.0.3",
2518
       "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz",
2533
       "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz",
@@ -4257,6 +4272,12 @@
4257
       "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=",
4272
       "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=",
4258
       "dev": true
4273
       "dev": true
4259
     },
4274
     },
4275
+    "node_modules/err-code": {
4276
+      "version": "2.0.3",
4277
+      "resolved": "https://registry.npmmirror.com/err-code/download/err-code-2.0.3.tgz",
4278
+      "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=",
4279
+      "dev": true
4280
+    },
4260
     "node_modules/errno": {
4281
     "node_modules/errno": {
4261
       "version": "0.1.7",
4282
       "version": "0.1.7",
4262
       "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
4283
       "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
@@ -7721,9 +7742,9 @@
7721
       "integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
7742
       "integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
7722
     },
7743
     },
7723
     "node_modules/nan": {
7744
     "node_modules/nan": {
7724
-      "version": "2.14.0",
7725
-      "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz",
7726
-      "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=",
7745
+      "version": "2.15.0",
7746
+      "resolved": "https://registry.npmmirror.com/nan/download/nan-2.15.0.tgz",
7747
+      "integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4=",
7727
       "optional": true
7748
       "optional": true
7728
     },
7749
     },
7729
     "node_modules/nanomatch": {
7750
     "node_modules/nanomatch": {
@@ -11521,6 +11542,19 @@
11521
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
11542
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
11522
       "dev": true
11543
       "dev": true
11523
     },
11544
     },
11545
+    "node_modules/promise-retry": {
11546
+      "version": "2.0.1",
11547
+      "resolved": "https://registry.npmmirror.com/promise-retry/download/promise-retry-2.0.1.tgz",
11548
+      "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=",
11549
+      "dev": true,
11550
+      "dependencies": {
11551
+        "err-code": "^2.0.2",
11552
+        "retry": "^0.12.0"
11553
+      },
11554
+      "engines": {
11555
+        "node": ">=10"
11556
+      }
11557
+    },
11524
     "node_modules/proxy-addr": {
11558
     "node_modules/proxy-addr": {
11525
       "version": "2.0.6",
11559
       "version": "2.0.6",
11526
       "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
11560
       "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
@@ -12212,6 +12246,15 @@
12212
         "node": ">=0.12"
12246
         "node": ">=0.12"
12213
       }
12247
       }
12214
     },
12248
     },
12249
+    "node_modules/retry": {
12250
+      "version": "0.12.0",
12251
+      "resolved": "https://registry.npmmirror.com/retry/download/retry-0.12.0.tgz",
12252
+      "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
12253
+      "dev": true,
12254
+      "engines": {
12255
+        "node": ">= 4"
12256
+      }
12257
+    },
12215
     "node_modules/rgb-regex": {
12258
     "node_modules/rgb-regex": {
12216
       "version": "1.0.1",
12259
       "version": "1.0.1",
12217
       "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz",
12260
       "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz",
@@ -12954,6 +12997,67 @@
12954
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
12997
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
12955
       "dev": true
12998
       "dev": true
12956
     },
12999
     },
13000
+    "node_modules/ssh2": {
13001
+      "version": "1.5.0",
13002
+      "resolved": "https://registry.npmmirror.com/ssh2/download/ssh2-1.5.0.tgz",
13003
+      "integrity": "sha1-TcVZupihy7Qg6NQpmN/jXQ7akrw=",
13004
+      "dev": true,
13005
+      "hasInstallScript": true,
13006
+      "dependencies": {
13007
+        "asn1": "^0.2.4",
13008
+        "bcrypt-pbkdf": "^1.0.2"
13009
+      },
13010
+      "engines": {
13011
+        "node": ">=10.16.0"
13012
+      },
13013
+      "optionalDependencies": {
13014
+        "cpu-features": "0.0.2",
13015
+        "nan": "^2.15.0"
13016
+      }
13017
+    },
13018
+    "node_modules/ssh2-sftp-client": {
13019
+      "version": "7.2.0",
13020
+      "resolved": "https://registry.npmmirror.com/ssh2-sftp-client/download/ssh2-sftp-client-7.2.0.tgz",
13021
+      "integrity": "sha512-h850dHBeLuKfL9uTQ7y11p8QA687Sr057+Q1paB7dMuO4GDtNwxj/CPwJmvIM5BCzEuNrWf9CnMnIdC23TxzcA==",
13022
+      "dev": true,
13023
+      "dependencies": {
13024
+        "concat-stream": "^2.0.0",
13025
+        "promise-retry": "^2.0.1",
13026
+        "ssh2": "^1.5.0"
13027
+      },
13028
+      "engines": {
13029
+        "node": ">=10.24.1"
13030
+      }
13031
+    },
13032
+    "node_modules/ssh2-sftp-client/node_modules/concat-stream": {
13033
+      "version": "2.0.0",
13034
+      "resolved": "https://registry.npmmirror.com/concat-stream/download/concat-stream-2.0.0.tgz",
13035
+      "integrity": "sha1-QUz1r3kKSMYKub5FJ9VtXkETPLE=",
13036
+      "dev": true,
13037
+      "engines": [
13038
+        "node >= 6.0"
13039
+      ],
13040
+      "dependencies": {
13041
+        "buffer-from": "^1.0.0",
13042
+        "inherits": "^2.0.3",
13043
+        "readable-stream": "^3.0.2",
13044
+        "typedarray": "^0.0.6"
13045
+      }
13046
+    },
13047
+    "node_modules/ssh2-sftp-client/node_modules/readable-stream": {
13048
+      "version": "3.6.0",
13049
+      "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1632380409088&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz",
13050
+      "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
13051
+      "dev": true,
13052
+      "dependencies": {
13053
+        "inherits": "^2.0.3",
13054
+        "string_decoder": "^1.1.1",
13055
+        "util-deprecate": "^1.0.1"
13056
+      },
13057
+      "engines": {
13058
+        "node": ">= 6"
13059
+      }
13060
+    },
12957
     "node_modules/sshpk": {
13061
     "node_modules/sshpk": {
12958
       "version": "1.16.1",
13062
       "version": "1.16.1",
12959
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
13063
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -13591,7 +13695,7 @@
13591
       "version": "0.14.5",
13695
       "version": "0.14.5",
13592
       "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365004105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz",
13696
       "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365004105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz",
13593
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
13697
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
13594
-      "optional": true
13698
+      "devOptional": true
13595
     },
13699
     },
13596
     "node_modules/type": {
13700
     "node_modules/type": {
13597
       "version": "1.2.0",
13701
       "version": "1.2.0",
@@ -15100,7 +15204,7 @@
15100
       "version": "0.2.4",
15204
       "version": "0.2.4",
15101
       "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
15205
       "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
15102
       "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
15206
       "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
15103
-      "optional": true,
15207
+      "devOptional": true,
15104
       "requires": {
15208
       "requires": {
15105
         "safer-buffer": "~2.1.0"
15209
         "safer-buffer": "~2.1.0"
15106
       }
15210
       }
@@ -16160,7 +16264,7 @@
16160
       "version": "1.0.2",
16264
       "version": "1.0.2",
16161
       "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
16265
       "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
16162
       "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
16266
       "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
16163
-      "optional": true,
16267
+      "devOptional": true,
16164
       "requires": {
16268
       "requires": {
16165
         "tweetnacl": "^0.14.3"
16269
         "tweetnacl": "^0.14.3"
16166
       }
16270
       }
@@ -17079,6 +17183,16 @@
17079
         }
17183
         }
17080
       }
17184
       }
17081
     },
17185
     },
17186
+    "cpu-features": {
17187
+      "version": "0.0.2",
17188
+      "resolved": "https://registry.npmmirror.com/cpu-features/download/cpu-features-0.0.2.tgz",
17189
+      "integrity": "sha1-n2NhVvEVX9BL26oCi7PC++886no=",
17190
+      "dev": true,
17191
+      "optional": true,
17192
+      "requires": {
17193
+        "nan": "^2.14.1"
17194
+      }
17195
+    },
17082
     "create-ecdh": {
17196
     "create-ecdh": {
17083
       "version": "4.0.3",
17197
       "version": "4.0.3",
17084
       "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz",
17198
       "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz",
@@ -18578,6 +18692,12 @@
18578
       "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=",
18692
       "integrity": "sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q=",
18579
       "dev": true
18693
       "dev": true
18580
     },
18694
     },
18695
+    "err-code": {
18696
+      "version": "2.0.3",
18697
+      "resolved": "https://registry.npmmirror.com/err-code/download/err-code-2.0.3.tgz",
18698
+      "integrity": "sha1-I8Lzt1b/38YI0w4nyalBAkgH5/k=",
18699
+      "dev": true
18700
+    },
18581
     "errno": {
18701
     "errno": {
18582
       "version": "0.1.7",
18702
       "version": "0.1.7",
18583
       "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
18703
       "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz",
@@ -21367,9 +21487,9 @@
21367
       "integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
21487
       "integrity": "sha1-QukiKxAbyoLlup1aes9KFMDyY9A="
21368
     },
21488
     },
21369
     "nan": {
21489
     "nan": {
21370
-      "version": "2.14.0",
21371
-      "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz",
21372
-      "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=",
21490
+      "version": "2.15.0",
21491
+      "resolved": "https://registry.npmmirror.com/nan/download/nan-2.15.0.tgz",
21492
+      "integrity": "sha1-PzSkc/8Y4VwbVia2KQO1rW5mX+4=",
21373
       "optional": true
21493
       "optional": true
21374
     },
21494
     },
21375
     "nanomatch": {
21495
     "nanomatch": {
@@ -24549,6 +24669,16 @@
24549
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
24669
       "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
24550
       "dev": true
24670
       "dev": true
24551
     },
24671
     },
24672
+    "promise-retry": {
24673
+      "version": "2.0.1",
24674
+      "resolved": "https://registry.npmmirror.com/promise-retry/download/promise-retry-2.0.1.tgz",
24675
+      "integrity": "sha1-/3R6E2IKtXumiPX8Z4VUEMNw2iI=",
24676
+      "dev": true,
24677
+      "requires": {
24678
+        "err-code": "^2.0.2",
24679
+        "retry": "^0.12.0"
24680
+      }
24681
+    },
24552
     "proxy-addr": {
24682
     "proxy-addr": {
24553
       "version": "2.0.6",
24683
       "version": "2.0.6",
24554
       "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
24684
       "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz",
@@ -25116,6 +25246,12 @@
25116
       "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz",
25246
       "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz",
25117
       "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w="
25247
       "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w="
25118
     },
25248
     },
25249
+    "retry": {
25250
+      "version": "0.12.0",
25251
+      "resolved": "https://registry.npmmirror.com/retry/download/retry-0.12.0.tgz",
25252
+      "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
25253
+      "dev": true
25254
+    },
25119
     "rgb-regex": {
25255
     "rgb-regex": {
25120
       "version": "1.0.1",
25256
       "version": "1.0.1",
25121
       "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz",
25257
       "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz",
@@ -25777,6 +25913,54 @@
25777
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
25913
       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
25778
       "dev": true
25914
       "dev": true
25779
     },
25915
     },
25916
+    "ssh2": {
25917
+      "version": "1.5.0",
25918
+      "resolved": "https://registry.npmmirror.com/ssh2/download/ssh2-1.5.0.tgz",
25919
+      "integrity": "sha1-TcVZupihy7Qg6NQpmN/jXQ7akrw=",
25920
+      "dev": true,
25921
+      "requires": {
25922
+        "asn1": "^0.2.4",
25923
+        "bcrypt-pbkdf": "^1.0.2",
25924
+        "cpu-features": "0.0.2",
25925
+        "nan": "^2.15.0"
25926
+      }
25927
+    },
25928
+    "ssh2-sftp-client": {
25929
+      "version": "7.2.0",
25930
+      "resolved": "https://registry.npmmirror.com/ssh2-sftp-client/download/ssh2-sftp-client-7.2.0.tgz",
25931
+      "integrity": "sha512-h850dHBeLuKfL9uTQ7y11p8QA687Sr057+Q1paB7dMuO4GDtNwxj/CPwJmvIM5BCzEuNrWf9CnMnIdC23TxzcA==",
25932
+      "dev": true,
25933
+      "requires": {
25934
+        "concat-stream": "^2.0.0",
25935
+        "promise-retry": "^2.0.1",
25936
+        "ssh2": "^1.5.0"
25937
+      },
25938
+      "dependencies": {
25939
+        "concat-stream": {
25940
+          "version": "2.0.0",
25941
+          "resolved": "https://registry.npmmirror.com/concat-stream/download/concat-stream-2.0.0.tgz",
25942
+          "integrity": "sha1-QUz1r3kKSMYKub5FJ9VtXkETPLE=",
25943
+          "dev": true,
25944
+          "requires": {
25945
+            "buffer-from": "^1.0.0",
25946
+            "inherits": "^2.0.3",
25947
+            "readable-stream": "^3.0.2",
25948
+            "typedarray": "^0.0.6"
25949
+          }
25950
+        },
25951
+        "readable-stream": {
25952
+          "version": "3.6.0",
25953
+          "resolved": "https://registry.npmmirror.com/readable-stream/download/readable-stream-3.6.0.tgz?cache=0&sync_timestamp=1632380409088&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Freadable-stream%2Fdownload%2Freadable-stream-3.6.0.tgz",
25954
+          "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=",
25955
+          "dev": true,
25956
+          "requires": {
25957
+            "inherits": "^2.0.3",
25958
+            "string_decoder": "^1.1.1",
25959
+            "util-deprecate": "^1.0.1"
25960
+          }
25961
+        }
25962
+      }
25963
+    },
25780
     "sshpk": {
25964
     "sshpk": {
25781
       "version": "1.16.1",
25965
       "version": "1.16.1",
25782
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
25966
       "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
@@ -26292,7 +26476,7 @@
26292
       "version": "0.14.5",
26476
       "version": "0.14.5",
26293
       "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365004105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz",
26477
       "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365004105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz",
26294
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
26478
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
26295
-      "optional": true
26479
+      "devOptional": true
26296
     },
26480
     },
26297
     "type": {
26481
     "type": {
26298
       "version": "1.2.0",
26482
       "version": "1.2.0",

+ 4 - 1
package.json

@@ -7,7 +7,9 @@
7
   "scripts": {
7
   "scripts": {
8
     "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
8
     "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9
     "start": "npm run dev",
9
     "start": "npm run dev",
10
-    "build": "node build/build.js"
10
+    "build": "node build/build.js",
11
+    "development": "node ./upload/development.js",
12
+    "production": "node ./upload/production.js"
11
   },
13
   },
12
   "dependencies": {
14
   "dependencies": {
13
     "axios": "^0.18.0",
15
     "axios": "^0.18.0",
@@ -55,6 +57,7 @@
55
     "rimraf": "^2.6.0",
57
     "rimraf": "^2.6.0",
56
     "semver": "^5.3.0",
58
     "semver": "^5.3.0",
57
     "shelljs": "^0.7.6",
59
     "shelljs": "^0.7.6",
60
+    "ssh2-sftp-client": "^7.2.0",
58
     "stylus": "^0.54.5",
61
     "stylus": "^0.54.5",
59
     "stylus-loader": "^2.1.1",
62
     "stylus-loader": "^2.1.1",
60
     "uglifyjs-webpack-plugin": "^1.1.1",
63
     "uglifyjs-webpack-plugin": "^1.1.1",

+ 43 - 0
upload/development.js

@@ -0,0 +1,43 @@
1
+const shell = require('shelljs')
2
+const path = require('path');
3
+const config = {
4
+  ip: "192.168.3.109", // ssh地址
5
+  username: "root", // ssh 用户名
6
+  port: 22,      //端口
7
+  password: "DStech@123", // ssh 密码
8
+  path: '/home/itsm/project/web/userApp', // 上传地址,删除地址
9
+  buildPath: '../dist' // 本地打包后文件地址
10
+}
11
+let Client = require('ssh2-sftp-client');
12
+
13
+function connectSSh() {
14
+  let sftp = new Client();
15
+  sftp.connect({
16
+    host: config.ip,
17
+    port: config.port,
18
+    username: config.username,
19
+    password: config.password
20
+  }).then(() => {
21
+    console.log("-----先执行删除服务器文件-----")
22
+    return sftp.rmdir(config.path, true);
23
+  }).then(() => {
24
+    // 上传文件
25
+    console.log("-----开始上传-----")
26
+    return sftp.uploadDir(path.resolve(__dirname, config.buildPath), config.path);
27
+  }).then((data) => {
28
+    console.log("-----上传完成-----");
29
+    sftp.end();
30
+  }).catch((err) => {
31
+    console.log(err, '-----失败-----');
32
+    sftp.end();
33
+  });
34
+}
35
+function runTask() {
36
+  //打包完成
37
+  if (shell.exec(`npm run build`).code == 0) {
38
+    console.log("-----打包成功-----");
39
+    //提交上传
40
+    connectSSh();
41
+  }
42
+}
43
+runTask()

+ 43 - 0
upload/production.js

@@ -0,0 +1,43 @@
1
+const shell = require('shelljs')
2
+const path = require('path');
3
+const config = {
4
+  ip: "139.129.255.139", // ssh地址
5
+  username: "root", // ssh 用户名
6
+  port: 22,      //端口
7
+  password: "DStech@123", // ssh 密码
8
+  path: '/home/md2/newweb/userApp', // 上传地址,删除地址
9
+  buildPath: '../dist' // 本地打包后文件地址
10
+}
11
+let Client = require('ssh2-sftp-client');
12
+
13
+function connectSSh() {
14
+  let sftp = new Client();
15
+  sftp.connect({
16
+    host: config.ip,
17
+    port: config.port,
18
+    username: config.username,
19
+    password: config.password
20
+  }).then(() => {
21
+    console.log("-----先执行删除服务器文件-----")
22
+    return sftp.rmdir(config.path, true);
23
+  }).then(() => {
24
+    // 上传文件
25
+    console.log("-----开始上传-----")
26
+    return sftp.uploadDir(path.resolve(__dirname, config.buildPath), config.path);
27
+  }).then((data) => {
28
+    console.log("-----上传完成-----");
29
+    sftp.end();
30
+  }).catch((err) => {
31
+    console.log(err, '-----失败-----');
32
+    sftp.end();
33
+  });
34
+}
35
+function runTask() {
36
+  //打包完成
37
+  if (shell.exec(`npm run build`).code == 0) {
38
+    console.log("-----打包成功-----");
39
+    //提交上传
40
+    connectSSh();
41
+  }
42
+}
43
+runTask()