提交 4727bce4 作者: 潘亚楠

合并分支 'dev-feat/#6' 到 'dev'

从 dev-feat/#6 合并到 dev

查看合并请求 Platform/UPA/UPA_QJCLI/UPA_QJCLI!8
src
.gitlab
tsconfig.json
.gitignore
\ No newline at end of file
{ {
"name": "qj-vue-cli", "name": "qj-cli",
"version": "0.1.0", "version": "0.1.5",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
...@@ -42,6 +42,16 @@ ...@@ -42,6 +42,16 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@types/inquirer": {
"version": "6.5.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/@types/inquirer/-/inquirer-6.5.0.tgz",
"integrity": "sha1-uDsL8wuIuL5yRtQOUdMv6dEOCb4=",
"dev": true,
"requires": {
"@types/through": "*",
"rxjs": "^6.4.0"
}
},
"@types/mocha": { "@types/mocha": {
"version": "5.2.7", "version": "5.2.7",
"resolved": "http://39.106.145.141:9000/repository/node-public/@types/mocha/-/mocha-5.2.7.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/@types/mocha/-/mocha-5.2.7.tgz",
...@@ -70,6 +80,15 @@ ...@@ -70,6 +80,15 @@
"integrity": "sha1-Jbj922MiJZxrkcNTONObD45SQlI=", "integrity": "sha1-Jbj922MiJZxrkcNTONObD45SQlI=",
"dev": true "dev": true
}, },
"@types/through": {
"version": "0.0.29",
"resolved": "http://39.106.145.141:9000/repository/node-public/@types/through/-/through-0.0.29.tgz",
"integrity": "sha1-cpQ6rJIuF5M5xlH6NKRCik1yL5M=",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"abbrev": { "abbrev": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/abbrev/-/abbrev-1.1.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/abbrev/-/abbrev-1.1.1.tgz",
...@@ -79,14 +98,12 @@ ...@@ -79,14 +98,12 @@
"acorn": { "acorn": {
"version": "5.7.3", "version": "5.7.3",
"resolved": "http://39.106.145.141:9000/repository/node-public/acorn/-/acorn-5.7.3.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/acorn/-/acorn-5.7.3.tgz",
"integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk=", "integrity": "sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk="
"dev": true
}, },
"acorn-es7-plugin": { "acorn-es7-plugin": {
"version": "1.1.7", "version": "1.1.7",
"resolved": "http://39.106.145.141:9000/repository/node-public/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz",
"integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=", "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s="
"dev": true
}, },
"ansi-align": { "ansi-align": {
"version": "2.0.0", "version": "2.0.0",
...@@ -103,6 +120,14 @@ ...@@ -103,6 +120,14 @@
"integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=", "integrity": "sha1-V9NbhoboUeLMBMQD8cACA5dqGBM=",
"dev": true "dev": true
}, },
"ansi-escapes": {
"version": "4.3.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
"integrity": "sha1-pM4rM9ayFLeVDYWVwhLxKsnMVp0=",
"requires": {
"type-fest": "^0.8.1"
}
},
"ansi-regex": { "ansi-regex": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/ansi-regex/-/ansi-regex-3.0.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/ansi-regex/-/ansi-regex-3.0.0.tgz",
...@@ -145,8 +170,7 @@ ...@@ -145,8 +170,7 @@
"array-filter": { "array-filter": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/array-filter/-/array-filter-1.0.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/array-filter/-/array-filter-1.0.0.tgz",
"integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
"dev": true
}, },
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
...@@ -222,8 +246,7 @@ ...@@ -222,8 +246,7 @@
"call-signature": { "call-signature": {
"version": "0.0.2", "version": "0.0.2",
"resolved": "http://39.106.145.141:9000/repository/node-public/call-signature/-/call-signature-0.0.2.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/call-signature/-/call-signature-0.0.2.tgz",
"integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY=", "integrity": "sha1-qEq8glpV70yysCi9dOIFpluaSZY="
"dev": true
}, },
"camelcase": { "camelcase": {
"version": "4.1.0", "version": "4.1.0",
...@@ -283,6 +306,11 @@ ...@@ -283,6 +306,11 @@
} }
} }
}, },
"chardet": {
"version": "0.7.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/chardet/-/chardet-0.7.0.tgz",
"integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4="
},
"chokidar": { "chokidar": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/chokidar/-/chokidar-3.3.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/chokidar/-/chokidar-3.3.0.tgz",
...@@ -324,6 +352,11 @@ ...@@ -324,6 +352,11 @@
"resolved": "http://39.106.145.141:9000/repository/node-public/cli-spinners/-/cli-spinners-2.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/cli-spinners/-/cli-spinners-2.2.0.tgz",
"integrity": "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=" "integrity": "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c="
}, },
"cli-width": {
"version": "2.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/cli-width/-/cli-width-2.2.0.tgz",
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
},
"cliui": { "cliui": {
"version": "5.0.0", "version": "5.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/cliui/-/cliui-5.0.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/cliui/-/cliui-5.0.0.tgz",
...@@ -459,8 +492,7 @@ ...@@ -459,8 +492,7 @@
"core-js": { "core-js": {
"version": "2.6.11", "version": "2.6.11",
"resolved": "http://39.106.145.141:9000/repository/node-public/core-js/-/core-js-2.6.11.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/core-js/-/core-js-2.6.11.tgz",
"integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="
"dev": true
}, },
"create-error-class": { "create-error-class": {
"version": "3.0.2", "version": "3.0.2",
...@@ -536,7 +568,6 @@ ...@@ -536,7 +568,6 @@
"version": "1.1.3", "version": "1.1.3",
"resolved": "http://39.106.145.141:9000/repository/node-public/define-properties/-/define-properties-1.1.3.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=",
"dev": true,
"requires": { "requires": {
"object-keys": "^1.0.12" "object-keys": "^1.0.12"
} }
...@@ -550,8 +581,7 @@ ...@@ -550,8 +581,7 @@
"diff-match-patch": { "diff-match-patch": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "http://39.106.145.141:9000/repository/node-public/diff-match-patch/-/diff-match-patch-1.0.4.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/diff-match-patch/-/diff-match-patch-1.0.4.tgz",
"integrity": "sha1-asS1UjdGN2HE2vDcYD64aRJHRLE=", "integrity": "sha1-asS1UjdGN2HE2vDcYD64aRJHRLE="
"dev": true
}, },
"dot-prop": { "dot-prop": {
"version": "4.2.0", "version": "4.2.0",
...@@ -571,8 +601,7 @@ ...@@ -571,8 +601,7 @@
"eastasianwidth": { "eastasianwidth": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha1-aWzi7Aqg5uqTo5f/zySqeEDIJ8s=", "integrity": "sha1-aWzi7Aqg5uqTo5f/zySqeEDIJ8s="
"dev": true
}, },
"emoji-regex": { "emoji-regex": {
"version": "7.0.3", "version": "7.0.3",
...@@ -584,7 +613,6 @@ ...@@ -584,7 +613,6 @@
"version": "1.3.1", "version": "1.3.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/empower/-/empower-1.3.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/empower/-/empower-1.3.1.tgz",
"integrity": "sha1-dol5y7s21x2PXtqrZj3qy52rkWw=", "integrity": "sha1-dol5y7s21x2PXtqrZj3qy52rkWw=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0", "core-js": "^2.0.0",
"empower-core": "^1.2.0" "empower-core": "^1.2.0"
...@@ -594,7 +622,6 @@ ...@@ -594,7 +622,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/empower-core/-/empower-core-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/empower-core/-/empower-core-1.2.0.tgz",
"integrity": "sha1-zj+ySE1Rh/opwj+6g0Swsv31YBw=", "integrity": "sha1-zj+ySE1Rh/opwj+6g0Swsv31YBw=",
"dev": true,
"requires": { "requires": {
"call-signature": "0.0.2", "call-signature": "0.0.2",
"core-js": "^2.0.0" "core-js": "^2.0.0"
...@@ -662,7 +689,6 @@ ...@@ -662,7 +689,6 @@
"version": "1.8.1", "version": "1.8.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/espurify/-/espurify-1.8.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/espurify/-/espurify-1.8.1.tgz",
"integrity": "sha1-V0bGwatC0wLeEL0dW/fw6MBRUFY=", "integrity": "sha1-V0bGwatC0wLeEL0dW/fw6MBRUFY=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0" "core-js": "^2.0.0"
} }
...@@ -670,8 +696,7 @@ ...@@ -670,8 +696,7 @@
"estraverse": { "estraverse": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/estraverse/-/estraverse-4.3.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0="
"dev": true
}, },
"execa": { "execa": {
"version": "3.4.0", "version": "3.4.0",
...@@ -705,6 +730,24 @@ ...@@ -705,6 +730,24 @@
} }
} }
}, },
"external-editor": {
"version": "3.1.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/external-editor/-/external-editor-3.1.0.tgz",
"integrity": "sha1-ywP3QL764D6k0oPK7SdBqD8zVJU=",
"requires": {
"chardet": "^0.7.0",
"iconv-lite": "^0.4.24",
"tmp": "^0.0.33"
}
},
"figures": {
"version": "3.1.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/figures/-/figures-3.1.0.tgz",
"integrity": "sha1-SxmN0H2NcVMGQoZK8tRd2eRZxOw=",
"requires": {
"escape-string-regexp": "^1.0.5"
}
},
"fill-range": { "fill-range": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/fill-range/-/fill-range-7.0.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/fill-range/-/fill-range-7.0.1.tgz",
...@@ -872,6 +915,14 @@ ...@@ -872,6 +915,14 @@
"resolved": "http://39.106.145.141:9000/repository/node-public/human-signals/-/human-signals-1.1.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/human-signals/-/human-signals-1.1.1.tgz",
"integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=" "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M="
}, },
"iconv-lite": {
"version": "0.4.24",
"resolved": "http://39.106.145.141:9000/repository/node-public/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-by-default": { "ignore-by-default": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
...@@ -893,8 +944,7 @@ ...@@ -893,8 +944,7 @@
"indexof": { "indexof": {
"version": "0.0.1", "version": "0.0.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/indexof/-/indexof-0.0.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
"dev": true
}, },
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
...@@ -918,6 +968,88 @@ ...@@ -918,6 +968,88 @@
"integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=",
"dev": true "dev": true
}, },
"inquirer": {
"version": "7.0.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/inquirer/-/inquirer-7.0.1.tgz",
"integrity": "sha1-E/eYDu3HPGif7/OZSxCcTnmcbrs=",
"requires": {
"ansi-escapes": "^4.2.1",
"chalk": "^2.4.2",
"cli-cursor": "^3.1.0",
"cli-width": "^2.0.0",
"external-editor": "^3.0.3",
"figures": "^3.0.0",
"lodash": "^4.17.15",
"mute-stream": "0.0.8",
"run-async": "^2.2.0",
"rxjs": "^6.5.3",
"string-width": "^4.1.0",
"strip-ansi": "^5.1.0",
"through": "^2.3.6"
},
"dependencies": {
"ansi-regex": {
"version": "5.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/ansi-regex/-/ansi-regex-5.0.0.tgz",
"integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U="
},
"chalk": {
"version": "2.4.2",
"resolved": "http://39.106.145.141:9000/repository/node-public/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"emoji-regex": {
"version": "8.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/emoji-regex/-/emoji-regex-8.0.0.tgz",
"integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc="
},
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
"integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0="
},
"string-width": {
"version": "4.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/string-width/-/string-width-4.2.0.tgz",
"integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.0"
},
"dependencies": {
"strip-ansi": {
"version": "6.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/strip-ansi/-/strip-ansi-6.0.0.tgz",
"integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
"requires": {
"ansi-regex": "^5.0.0"
}
}
}
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
"requires": {
"ansi-regex": "^4.1.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc="
}
}
}
}
},
"is-arrayish": { "is-arrayish": {
"version": "0.2.1", "version": "0.2.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/is-arrayish/-/is-arrayish-0.2.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/is-arrayish/-/is-arrayish-0.2.1.tgz",
...@@ -1023,6 +1155,11 @@ ...@@ -1023,6 +1155,11 @@
"path-is-inside": "^1.0.1" "path-is-inside": "^1.0.1"
} }
}, },
"is-promise": {
"version": "2.1.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/is-promise/-/is-promise-2.1.0.tgz",
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"is-redirect": { "is-redirect": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/is-redirect/-/is-redirect-1.0.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/is-redirect/-/is-redirect-1.0.0.tgz",
...@@ -1110,8 +1247,7 @@ ...@@ -1110,8 +1247,7 @@
"lodash": { "lodash": {
"version": "4.17.15", "version": "4.17.15",
"resolved": "http://39.106.145.141:9000/repository/node-public/lodash/-/lodash-4.17.15.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=", "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="
"dev": true
}, },
"log-symbols": { "log-symbols": {
"version": "2.2.0", "version": "2.2.0",
...@@ -1339,8 +1475,7 @@ ...@@ -1339,8 +1475,7 @@
"object-keys": { "object-keys": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/object-keys/-/object-keys-1.1.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4="
"dev": true
}, },
"object.assign": { "object.assign": {
"version": "4.1.0", "version": "4.1.0",
...@@ -1430,6 +1565,11 @@ ...@@ -1430,6 +1565,11 @@
} }
} }
}, },
"os-tmpdir": {
"version": "1.0.2",
"resolved": "http://39.106.145.141:9000/repository/node-public/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"p-finally": { "p-finally": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/p-finally/-/p-finally-2.0.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/p-finally/-/p-finally-2.0.1.tgz",
...@@ -1526,7 +1666,6 @@ ...@@ -1526,7 +1666,6 @@
"version": "1.6.1", "version": "1.6.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert/-/power-assert-1.6.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert/-/power-assert-1.6.1.tgz",
"integrity": "sha1-soy8Aq6Aiv0UMdDNUJOjmsWlsf4=", "integrity": "sha1-soy8Aq6Aiv0UMdDNUJOjmsWlsf4=",
"dev": true,
"requires": { "requires": {
"define-properties": "^1.1.2", "define-properties": "^1.1.2",
"empower": "^1.3.1", "empower": "^1.3.1",
...@@ -1539,7 +1678,6 @@ ...@@ -1539,7 +1678,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz",
"integrity": "sha1-j75yaSKI7FpyA83yFci4OKYGHSo=", "integrity": "sha1-j75yaSKI7FpyA83yFci4OKYGHSo=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0", "core-js": "^2.0.0",
"power-assert-context-traversal": "^1.2.0" "power-assert-context-traversal": "^1.2.0"
...@@ -1549,7 +1687,6 @@ ...@@ -1549,7 +1687,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz",
"integrity": "sha1-x8ocnjmm+3F/esX+nnbhkr9SXfM=", "integrity": "sha1-x8ocnjmm+3F/esX+nnbhkr9SXfM=",
"dev": true,
"requires": { "requires": {
"acorn": "^5.0.0", "acorn": "^5.0.0",
"acorn-es7-plugin": "^1.0.12", "acorn-es7-plugin": "^1.0.12",
...@@ -1562,7 +1699,6 @@ ...@@ -1562,7 +1699,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz",
"integrity": "sha1-9ucUVLr2QN5cHJwnA0n1yasLLpQ=", "integrity": "sha1-9ucUVLr2QN5cHJwnA0n1yasLLpQ=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0", "core-js": "^2.0.0",
"estraverse": "^4.1.0" "estraverse": "^4.1.0"
...@@ -1572,7 +1708,6 @@ ...@@ -1572,7 +1708,6 @@
"version": "1.4.1", "version": "1.4.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz",
"integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=", "integrity": "sha1-XcEl7VCj37HdomwZNH879Y7CiEo=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0", "core-js": "^2.0.0",
"power-assert-context-formatter": "^1.0.7", "power-assert-context-formatter": "^1.0.7",
...@@ -1587,7 +1722,6 @@ ...@@ -1587,7 +1722,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz",
"integrity": "sha1-Pbb/zaEGs3vB4GQyrQ10imgrFHo=", "integrity": "sha1-Pbb/zaEGs3vB4GQyrQ10imgrFHo=",
"dev": true,
"requires": { "requires": {
"power-assert-renderer-base": "^1.1.1", "power-assert-renderer-base": "^1.1.1",
"power-assert-util-string-width": "^1.2.0" "power-assert-util-string-width": "^1.2.0"
...@@ -1596,14 +1730,12 @@ ...@@ -1596,14 +1730,12 @@
"power-assert-renderer-base": { "power-assert-renderer-base": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz",
"integrity": "sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s=", "integrity": "sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s="
"dev": true
}, },
"power-assert-renderer-comparison": { "power-assert-renderer-comparison": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz",
"integrity": "sha1-5PiBEyJaab6KpYbq0FrvmUYsBJU=", "integrity": "sha1-5PiBEyJaab6KpYbq0FrvmUYsBJU=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0", "core-js": "^2.0.0",
"diff-match-patch": "^1.0.0", "diff-match-patch": "^1.0.0",
...@@ -1616,7 +1748,6 @@ ...@@ -1616,7 +1748,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz",
"integrity": "sha1-N/ZuhULlZ3xbWObXKwHA2aMOIhk=", "integrity": "sha1-N/ZuhULlZ3xbWObXKwHA2aMOIhk=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0", "core-js": "^2.0.0",
"power-assert-renderer-base": "^1.1.1", "power-assert-renderer-base": "^1.1.1",
...@@ -1628,7 +1759,6 @@ ...@@ -1628,7 +1759,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz",
"integrity": "sha1-P0vr2eFFXXXPKsVB57tRWofUzks=", "integrity": "sha1-P0vr2eFFXXXPKsVB57tRWofUzks=",
"dev": true,
"requires": { "requires": {
"power-assert-renderer-base": "^1.1.1" "power-assert-renderer-base": "^1.1.1"
} }
...@@ -1637,7 +1767,6 @@ ...@@ -1637,7 +1767,6 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz",
"integrity": "sha1-bgbV41gbuHbF03fFMQn/+pW9kaA=", "integrity": "sha1-bgbV41gbuHbF03fFMQn/+pW9kaA=",
"dev": true,
"requires": { "requires": {
"eastasianwidth": "^0.2.0" "eastasianwidth": "^0.2.0"
} }
...@@ -1750,11 +1879,18 @@ ...@@ -1750,11 +1879,18 @@
"signal-exit": "^3.0.2" "signal-exit": "^3.0.2"
} }
}, },
"run-async": {
"version": "2.3.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/run-async/-/run-async-2.3.0.tgz",
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"requires": {
"is-promise": "^2.1.0"
}
},
"rxjs": { "rxjs": {
"version": "6.5.3", "version": "6.5.3",
"resolved": "http://39.106.145.141:9000/repository/node-public/rxjs/-/rxjs-6.5.3.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/rxjs/-/rxjs-6.5.3.tgz",
"integrity": "sha1-UQ4mMX9NuRp+sd532d2boKSJmjo=", "integrity": "sha1-UQ4mMX9NuRp+sd532d2boKSJmjo=",
"dev": true,
"requires": { "requires": {
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }
...@@ -1765,6 +1901,11 @@ ...@@ -1765,6 +1901,11 @@
"integrity": "sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk=", "integrity": "sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk=",
"dev": true "dev": true
}, },
"safer-buffer": {
"version": "2.1.2",
"resolved": "http://39.106.145.141:9000/repository/node-public/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
},
"semver": { "semver": {
"version": "5.7.1", "version": "5.7.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/semver/-/semver-5.7.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/semver/-/semver-5.7.1.tgz",
...@@ -1898,7 +2039,6 @@ ...@@ -1898,7 +2039,6 @@
"version": "1.4.0", "version": "1.4.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/stringifier/-/stringifier-1.4.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/stringifier/-/stringifier-1.4.0.tgz",
"integrity": "sha1-1wRYFWf0UmJl0A7Y7LNUoCw/7Cg=", "integrity": "sha1-1wRYFWf0UmJl0A7Y7LNUoCw/7Cg=",
"dev": true,
"requires": { "requires": {
"core-js": "^2.0.0", "core-js": "^2.0.0",
"traverse": "^0.6.6", "traverse": "^0.6.6",
...@@ -2012,12 +2152,25 @@ ...@@ -2012,12 +2152,25 @@
} }
} }
}, },
"through": {
"version": "2.3.8",
"resolved": "http://39.106.145.141:9000/repository/node-public/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"timed-out": { "timed-out": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/timed-out/-/timed-out-4.0.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/timed-out/-/timed-out-4.0.1.tgz",
"integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
"dev": true "dev": true
}, },
"tmp": {
"version": "0.0.33",
"resolved": "http://39.106.145.141:9000/repository/node-public/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=",
"requires": {
"os-tmpdir": "~1.0.2"
}
},
"to-regex-range": { "to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/to-regex-range/-/to-regex-range-5.0.1.tgz",
...@@ -2039,8 +2192,7 @@ ...@@ -2039,8 +2192,7 @@
"traverse": { "traverse": {
"version": "0.6.6", "version": "0.6.6",
"resolved": "http://39.106.145.141:9000/repository/node-public/traverse/-/traverse-0.6.6.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/traverse/-/traverse-0.6.6.tgz",
"integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
"dev": true
}, },
"tree-kill": { "tree-kill": {
"version": "1.2.2", "version": "1.2.2",
...@@ -2072,14 +2224,17 @@ ...@@ -2072,14 +2224,17 @@
"tslib": { "tslib": {
"version": "1.10.0", "version": "1.10.0",
"resolved": "http://39.106.145.141:9000/repository/node-public/tslib/-/tslib-1.10.0.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/tslib/-/tslib-1.10.0.tgz",
"integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo=", "integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo="
"dev": true },
"type-fest": {
"version": "0.8.1",
"resolved": "http://39.106.145.141:9000/repository/node-public/type-fest/-/type-fest-0.8.1.tgz",
"integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0="
}, },
"type-name": { "type-name": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "http://39.106.145.141:9000/repository/node-public/type-name/-/type-name-2.0.2.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/type-name/-/type-name-2.0.2.tgz",
"integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q="
"dev": true
}, },
"typescript": { "typescript": {
"version": "3.7.3", "version": "3.7.3",
...@@ -2126,7 +2281,6 @@ ...@@ -2126,7 +2281,6 @@
"version": "1.2.2", "version": "1.2.2",
"resolved": "http://39.106.145.141:9000/repository/node-public/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz",
"integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=", "integrity": "sha1-DaSsL3PP95JMgfpN4BjKViyisKc=",
"dev": true,
"requires": { "requires": {
"array-filter": "^1.0.0", "array-filter": "^1.0.0",
"indexof": "0.0.1", "indexof": "0.0.1",
...@@ -2299,8 +2453,7 @@ ...@@ -2299,8 +2453,7 @@
"xtend": { "xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "http://39.106.145.141:9000/repository/node-public/xtend/-/xtend-4.0.2.tgz", "resolved": "http://39.106.145.141:9000/repository/node-public/xtend/-/xtend-4.0.2.tgz",
"integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q="
"dev": true
}, },
"y18n": { "y18n": {
"version": "4.0.0", "version": "4.0.0",
......
{ {
"name": "qj-vue-cli", "name": "qj-cli",
"version": "0.1.0", "version": "0.1.5",
"description": "qj-vue-cli", "description": "qj-vue-cli",
"main": "index.js", "main": "index.js",
"bin": { "bin": {
...@@ -11,8 +11,8 @@ ...@@ -11,8 +11,8 @@
"watch-bin": "nodemon dist/bin/index.js create vue2.0 hello", "watch-bin": "nodemon dist/bin/index.js create vue2.0 hello",
"dev": "concurrently \"npm run watch-ts\" \"npm run watch-bin\"", "dev": "concurrently \"npm run watch-ts\" \"npm run watch-bin\"",
"build": "tsc", "build": "tsc",
"dev-link": "npm run build && npm unlink && npm link", "test-ts": "mocha -r ts-node/register src/test/**/*.test.ts",
"test": "mocha -r ts-node/register src/test/**/*.test.ts" "test": "mocha dist/test/**/*.test.js"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
...@@ -29,13 +29,13 @@ ...@@ -29,13 +29,13 @@
"@types/commander": "^2.12.2", "@types/commander": "^2.12.2",
"@types/cross-spawn": "^6.0.1", "@types/cross-spawn": "^6.0.1",
"@types/fs-extra": "^8.0.1", "@types/fs-extra": "^8.0.1",
"@types/inquirer": "^6.5.0",
"@types/mocha": "^5.2.7", "@types/mocha": "^5.2.7",
"@types/node": "^12.12.17", "@types/node": "^12.12.17",
"@types/power-assert": "^1.5.2", "@types/power-assert": "^1.5.2",
"concurrently": "^5.0.1", "concurrently": "^5.0.1",
"mocha": "^6.2.2", "mocha": "^6.2.2",
"nodemon": "^2.0.2", "nodemon": "^2.0.2",
"power-assert": "^1.6.1",
"ts-node": "^8.5.4", "ts-node": "^8.5.4",
"typescript": "^3.7.3" "typescript": "^3.7.3"
}, },
...@@ -45,6 +45,8 @@ ...@@ -45,6 +45,8 @@
"cross-spawn": "^7.0.1", "cross-spawn": "^7.0.1",
"execa": "^3.4.0", "execa": "^3.4.0",
"fs-extra": "^8.1.0", "fs-extra": "^8.1.0",
"ora": "^4.0.3" "inquirer": "^7.0.1",
"ora": "^4.0.3",
"power-assert": "^1.6.1"
} }
} }
...@@ -2,18 +2,18 @@ ...@@ -2,18 +2,18 @@
import * as program from 'commander'; import * as program from 'commander';
import { hasTemplate } from '../config/template.config'; import { hasTemplate } from '../config/template.config';
import listTemplates from '../lib/listTemplates'; import listTemplates from '../lib/listTemplates';
import { create } from '../lib/create'
// 版本号 // 版本号
program program
.version(`${require('../../package.json').version}`) .version(`${require('../../package.json').version}`)
.name('world') .name('qj-cli')
.usage('<command> [options]'); .usage('<command> [options]');
// create command // create command
program program
.command('create <templateName> <projectName>') .command('create <templateName> <projectName>')
.description('create a project from a template') .description('create a project from a template')
.action((templateName: string, projectName: string, cmd) => { .action((templateName: string, projectName: string, options) => {
console.log(templateName); create(templateName, projectName, options);
console.log(projectName);
}) })
// ls command // ls command
program program
......
...@@ -3,18 +3,13 @@ ...@@ -3,18 +3,13 @@
* @author panyanan * @author panyanan
* @information 框架模板配置文件 * @information 框架模板配置文件
*/ */
export interface Repo {
readonly url: string, // 仓库地址
readonly username: string, // 用户名
readonly password: string, // 用户密码
}
export interface Template { export interface Template {
readonly name: string, // 模板名称 readonly name: string, // 模板名称
readonly desc: string, // 模板描述 readonly desc: string, // 模板描述
readonly repo: Repo, // 模板仓库信息 readonly repo: string, // 模板仓库信息
} }
export const Templates: Template[] = [ export const Templates: Template[] = [
{ name: 'vue2.0', desc: '千家vue2.0项目模板,对接了组件库/标准库/用户操作埋点', repo: { url: 'git@git.allhome.com.cn:panyanan/my-vue-template.git', username: '', password: ''} }, { name: 'vue2', desc: '千家vue2项目模板,对接了组件库/标准库/用户操作埋点', repo: 'https://git.allhome.com.cn/panyanan/my-vue-template.git' },
// todo other template // todo other template
]; ];
/** /**
......
import { Templates, hasTemplate } from '../config/template.config'
import * as chalk from 'chalk'
import * as path from 'path'
import { CreateVue2 } from './create_vue2'
export async function create(templateName: string, projectName: string, options: any) {
// 验证模板名称
let requireMessage = [];
if (!hasTemplate(templateName)) {
requireMessage.push('模板名称不正确')
}
// 验证项目名称
if (!projectName) {
requireMessage.push('缺少项目名')
}
if (requireMessage.length) {
console.log(chalk.red(requireMessage.join(' && ')));
return;
}
// 项目目录
const targetDir = path.join(process.cwd(), projectName);
// 模板
const template = Templates.find( ({ name }) => name === templateName );
// 不同的框架模板实现各自的创建逻辑
switch(templateName) {
case 'vue2':
const creator = new CreateVue2( template, projectName, targetDir);
await creator.create(options);
default:
}
}
import * as ora from 'ora'
import { Git } from '../util/Git'
import { Templates, Template } from '../config/template.config'
import * as inquirer from 'inquirer'
import * as chalk from 'chalk';
/**
* @date 2019.12.18
* @author panyanan
* @information 创建vue2项目
*/
export class CreateVue2 {
// 模板
private template: Template;
// 项目名称
private projectName: string;
// 项目目录
private targetDir: string;
constructor(template: Template, projectName: string, targetDir: string) {
this.template = template;
this.projectName = projectName;
this.targetDir = targetDir;
}
/**
* @date 2019.12.19
* @author panyanan
* @information 创建
* @param { Object } commander中设置的option
*/
public async create(options: any): Promise<void>{
try {
let spinner = ora('create new a project');
spinner.start(`拉取${this.template.name}模板`);
// 通过仓库地址和输出目录创建git实例
const pullGit = new Git(this.template.repo, this.targetDir);
pullGit.pull();
spinner.succeed('拉取模板成功');
// 是否推送到gitLab
let answer = await inquirer.prompt([
{ name: 'push', type: 'confirm', message: '是否将项目推送到gitlab',}
]);
// 如果推送
if (answer.push) {
const { repo } = await inquirer.prompt([
{ name: 'repo', type: 'input', message: '请输入gitlab项目地址:'}
]);
const pushGit = new Git(repo, this.targetDir);
try {
spinner.start(`正在推送到gitlab: ${repo}`)
pushGit.push();
spinner.succeed('推送成功')
} catch (error) {
spinner.fail(`推送失败: ${error.message}`);
}
}
} catch (error) {
console.log(`${chalk.red('创建失败')}: ${error.message}`);
}
}
}
\ No newline at end of file
...@@ -15,9 +15,9 @@ export default function () { ...@@ -15,9 +15,9 @@ export default function () {
const tip = ` const tip = `
********************************************** **********************************************
当你使用create命令时如: 当你使用create命令时如:
${chalk.blueBright('"qj-cli create vue2.0 hello"')} ${chalk.blueBright('"qj-cli create vue2 hello"')}
中的${chalk.blueBright('"vue2.0"')}就指的是下面框架名: vue2.0, 中的${chalk.blueBright('"vue2"')}就指的是下面框架名: vue2,
欢迎同学们积极提供框架模板,我们还需要vue2.0_ts, vue3.0, vue3.0_ts,node服务框架等等, 欢迎同学们积极提供框架模板,我们还需要vue2_ts, vue3, vue3_ts,node服务框架等等,
********************************************** **********************************************
`; `;
log(`${chalk.green(tip)}`); log(`${chalk.green(tip)}`);
......
import Git from '../../util/Git' import { Git } from '../../util/Git'
import * as assert from 'power-assert' import * as assert from 'power-assert'
import * as path from 'path' import * as path from 'path'
import * as spawn from 'cross-spawn' import * as spawn from 'cross-spawn'
......
...@@ -8,7 +8,7 @@ import * as assert from 'power-assert' ...@@ -8,7 +8,7 @@ import * as assert from 'power-assert'
import * as fs from 'fs-extra' import * as fs from 'fs-extra'
import * as chalk from 'chalk' import * as chalk from 'chalk'
import * as spawn from 'cross-spawn' import * as spawn from 'cross-spawn'
class Git { export class Git {
private gitURL: string; // 仓库地址 private gitURL: string; // 仓库地址
private dir: string; // 拉取或推送的目录 private dir: string; // 拉取或推送的目录
constructor(gitURL: string, dir: string) { constructor(gitURL: string, dir: string) {
...@@ -21,22 +21,19 @@ class Git { ...@@ -21,22 +21,19 @@ class Git {
* @author panyanan * @author panyanan
* @information 拉取 * @information 拉取
*/ */
async pull(): Promise<boolean> { pull(): void {
let res = false;
try {
// 检测目录是否存在 // 检测目录是否存在
const dirExits = await fs.pathExists(this.dir); const dirExits = fs.pathExistsSync(this.dir);
// 目录存在需要删除,才能clone // 目录存在需要删除,才能clone
if (dirExits) { if (dirExits) {
console.log(chalk.red(`delete ${this.dir}`)); console.log(`${chalk.red('\n delete ')}${this.dir}`);
await fs.remove(this.dir); fs.removeSync(this.dir);
} }
await execa('git', ['clone', this.gitURL, this.dir]); // 报告者用户拉取模板
res = true; const username = 'reporter';
} catch (error) { const password = 'allqj123456'
assert.ok(false, `拉取 ${this.gitURL} 失败: ${ error.message }`); const gitUrl = this.gitURL.replace('https://', `https://${username}:${password}@`);
} execa.sync('git', ['clone', gitUrl, this.dir]);
return res;
} }
/** /**
* @date 2019.12.17 * @date 2019.12.17
...@@ -49,11 +46,11 @@ class Git { ...@@ -49,11 +46,11 @@ class Git {
cwd: this.dir, cwd: this.dir,
} }
// remove origin // remove origin
spawn.sync('git', ['remote', 'remove', 'origin',], options); spawn.sync('git', ['remote', 'remove', 'origin'], options);
// set origin 为当前url // set origin 为当前url
spawn.sync('git', ['remote', 'add', 'origin', this.gitURL], options); spawn.sync('git', ['remote', 'add', 'origin', this.gitURL], options);
// 推送 // 推送
const { status, stderr } = spawn.sync('git', ['push', '-u', 'origin', '--all'], options); const { status, stderr, stdout } = spawn.sync('git', ['push', '-u', 'origin', '--all'], options);
// status 为0时命令执行成功, 为1是命令执行失败 // status 为0时命令执行成功, 为1是命令执行失败
if (status === 0) { if (status === 0) {
res = true; res = true;
...@@ -92,4 +89,3 @@ class Git { ...@@ -92,4 +89,3 @@ class Git {
return res; return res;
} }
} }
\ No newline at end of file
export default Git;
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论