cmyr-template-cli 1.2.0 → 1.3.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.
- package/dist/plopfile.js +41 -6
- package/package.json +7 -3
package/dist/plopfile.js
CHANGED
|
@@ -5,7 +5,9 @@ var path = require('path');
|
|
|
5
5
|
var fs = require('fs-extra');
|
|
6
6
|
var ora = require('ora');
|
|
7
7
|
var download = require('download-git-repo');
|
|
8
|
+
var axios = require('axios');
|
|
8
9
|
var child_process = require('child_process');
|
|
10
|
+
var any = require('promise.any');
|
|
9
11
|
|
|
10
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
13
|
|
|
@@ -13,16 +15,27 @@ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
|
|
|
13
15
|
var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
|
|
14
16
|
var ora__default = /*#__PURE__*/_interopDefaultLegacy(ora);
|
|
15
17
|
var download__default = /*#__PURE__*/_interopDefaultLegacy(download);
|
|
18
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
19
|
+
var any__default = /*#__PURE__*/_interopDefaultLegacy(any);
|
|
16
20
|
|
|
17
|
-
|
|
18
|
-
const __DEV__ = env.NODE_ENV === 'development';
|
|
21
|
+
process.env;
|
|
19
22
|
const PACKAGE_MANAGER = 'pnpm';
|
|
20
23
|
|
|
24
|
+
if (!Promise.any) {
|
|
25
|
+
Promise.any = any__default["default"];
|
|
26
|
+
}
|
|
27
|
+
const REMOTES = [
|
|
28
|
+
'https://github.com',
|
|
29
|
+
'https://hub.fastgit.org',
|
|
30
|
+
'https://gitclone.com',
|
|
31
|
+
'https://github.com.cnpmjs.org',
|
|
32
|
+
];
|
|
21
33
|
async function downloadGitRepo(repository, destination, options = {}) {
|
|
34
|
+
const fastRepo = await getFastGitRepo(repository);
|
|
22
35
|
const loading = ora__default["default"](`download - ${repository}`);
|
|
23
36
|
loading.start();
|
|
24
37
|
return new Promise((resolve, reject) => {
|
|
25
|
-
download__default["default"](
|
|
38
|
+
download__default["default"](fastRepo, destination, options, (err) => {
|
|
26
39
|
loading.stop();
|
|
27
40
|
if (err) {
|
|
28
41
|
return reject(err);
|
|
@@ -85,6 +98,28 @@ async function getGitUserName() {
|
|
|
85
98
|
const username = (await asyncExec('git config user.name'));
|
|
86
99
|
return username.trim();
|
|
87
100
|
}
|
|
101
|
+
async function getFastGitRepo(repository) {
|
|
102
|
+
const loading = ora__default["default"](`正在选择镜像源 - ${repository}`);
|
|
103
|
+
loading.start();
|
|
104
|
+
try {
|
|
105
|
+
const fast = await Promise.any(REMOTES.map((remote) => {
|
|
106
|
+
const url = `${remote}/${repository}/archive/refs/heads/master.zip`;
|
|
107
|
+
return axios__default["default"]({
|
|
108
|
+
url,
|
|
109
|
+
method: 'HEAD',
|
|
110
|
+
timeout: 15 * 1000,
|
|
111
|
+
});
|
|
112
|
+
}));
|
|
113
|
+
return `direct:${fast.config.url}`;
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
console.error(error);
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
finally {
|
|
120
|
+
loading.stop();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
88
123
|
|
|
89
124
|
module.exports = function (plop) {
|
|
90
125
|
plop.setActionType('initProject', async (answers) => {
|
|
@@ -92,7 +127,7 @@ module.exports = function (plop) {
|
|
|
92
127
|
const author = answers.author;
|
|
93
128
|
const template = answers.template;
|
|
94
129
|
const projectPath = path__default["default"].join(process.cwd(), name);
|
|
95
|
-
await downloadGitRepo(`
|
|
130
|
+
await downloadGitRepo(`CaoMeiYouRen/${template}`, projectPath);
|
|
96
131
|
await init(projectPath, {
|
|
97
132
|
name,
|
|
98
133
|
author,
|
|
@@ -110,7 +145,7 @@ module.exports = function (plop) {
|
|
|
110
145
|
validate(input) {
|
|
111
146
|
return input.trim().length !== 0;
|
|
112
147
|
},
|
|
113
|
-
default:
|
|
148
|
+
default: '',
|
|
114
149
|
filter: (e) => e.trim(),
|
|
115
150
|
},
|
|
116
151
|
{
|
|
@@ -120,7 +155,7 @@ module.exports = function (plop) {
|
|
|
120
155
|
validate(input) {
|
|
121
156
|
return input.trim().length !== 0;
|
|
122
157
|
},
|
|
123
|
-
default:
|
|
158
|
+
default: await getGitUserName(),
|
|
124
159
|
filter: (e) => e.trim(),
|
|
125
160
|
},
|
|
126
161
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cmyr-template-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "草梅友仁自制的项目模板创建器",
|
|
5
5
|
"author": "CaoMeiYouRen",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,13 +27,14 @@
|
|
|
27
27
|
"release": "semantic-release",
|
|
28
28
|
"commit": "git add . && git cz",
|
|
29
29
|
"create": "ct create",
|
|
30
|
-
"build:dev": "
|
|
30
|
+
"build:dev": "rimraf dist && cross-env NODE_ENV=development rollup -c && rimraf temp && cross-env NODE_ENV=development ct create",
|
|
31
31
|
"build:prod": "npm run build && rimraf temp && cross-env NODE_ENV=production ct create"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@rollup/plugin-commonjs": "^21.0.0",
|
|
35
35
|
"@rollup/plugin-json": "^4.1.0",
|
|
36
36
|
"@rollup/plugin-node-resolve": "^13.0.5",
|
|
37
|
+
"@rollup/plugin-replace": "^3.0.0",
|
|
37
38
|
"@rollup/plugin-typescript": "^8.0.0",
|
|
38
39
|
"@semantic-release/changelog": "^6.0.0",
|
|
39
40
|
"@semantic-release/git": "^10.0.0",
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
"@types/fs-extra": "^9.0.4",
|
|
42
43
|
"@types/lodash": "^4.14.165",
|
|
43
44
|
"@types/node": "^16.9.6",
|
|
45
|
+
"@types/promise.any": "^2.0.0",
|
|
44
46
|
"@typescript-eslint/eslint-plugin": "^4.9.0",
|
|
45
47
|
"@typescript-eslint/parser": "^4.9.0",
|
|
46
48
|
"commitizen": "^4.2.2",
|
|
@@ -64,6 +66,7 @@
|
|
|
64
66
|
"validate-commit-msg": "^2.14.0"
|
|
65
67
|
},
|
|
66
68
|
"dependencies": {
|
|
69
|
+
"axios": "^0.24.0",
|
|
67
70
|
"colors": "^1.4.0",
|
|
68
71
|
"commander": "^8.2.0",
|
|
69
72
|
"dayjs": "^1.9.6",
|
|
@@ -71,7 +74,8 @@
|
|
|
71
74
|
"fs-extra": "^10.0.0",
|
|
72
75
|
"minimist": "^1.2.5",
|
|
73
76
|
"ora": "^5.4.1",
|
|
74
|
-
"plop": "^2.7.6"
|
|
77
|
+
"plop": "^2.7.6",
|
|
78
|
+
"promise.any": "^2.0.2"
|
|
75
79
|
},
|
|
76
80
|
"config": {
|
|
77
81
|
"commitizen": {
|