@gx-design-vue/create-gx-cli 0.0.7 → 0.0.9
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/package.json +2 -2
- package/src/cli.js +4 -3
- package/src/main.js +15 -23
- package/template-mobile-vant-cli/package.json +5 -5
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@gx-design-vue/create-gx-cli",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.9",
|
4
4
|
"license": "MIT",
|
5
5
|
"description": "a cli to bootstrap gx project",
|
6
6
|
"main": "src/index.js",
|
@@ -23,7 +23,7 @@
|
|
23
23
|
"nanospinner": "^1.1.0",
|
24
24
|
"ncp": "^2.0.0",
|
25
25
|
"obtain-git-repo": "^1.0.2",
|
26
|
-
"prompts": "^2.4.
|
26
|
+
"prompts": "^2.4.1"
|
27
27
|
},
|
28
28
|
"files": [
|
29
29
|
"bin/",
|
package/src/cli.js
CHANGED
@@ -43,6 +43,7 @@ function parseArgumentsIntoOptions() {
|
|
43
43
|
}
|
44
44
|
|
45
45
|
async function promptForMissingOptions(options) {
|
46
|
+
console.log(typeof options.template === 'string' && !TEMPLATES.includes(options.template))
|
46
47
|
const answers = await prompts([
|
47
48
|
{
|
48
49
|
type: options.projectName ? null : 'text',
|
@@ -51,7 +52,7 @@ async function promptForMissingOptions(options) {
|
|
51
52
|
initial: defaultTargetDir
|
52
53
|
},
|
53
54
|
{
|
54
|
-
type:
|
55
|
+
type: 'select',
|
55
56
|
name: 'template',
|
56
57
|
message:
|
57
58
|
typeof options.template === 'string' && !TEMPLATES.includes(options.template)
|
@@ -65,8 +66,7 @@ async function promptForMissingOptions(options) {
|
|
65
66
|
title: frameworkColor(framework.name),
|
66
67
|
value: framework
|
67
68
|
}
|
68
|
-
})
|
69
|
-
default: 'vue'
|
69
|
+
})
|
70
70
|
}
|
71
71
|
])
|
72
72
|
|
@@ -80,6 +80,7 @@ async function promptForMissingOptions(options) {
|
|
80
80
|
export async function cli() {
|
81
81
|
let options = parseArgumentsIntoOptions()
|
82
82
|
options = await promptForMissingOptions(options)
|
83
|
+
console.log(options)
|
83
84
|
if (options.template && options.projectName) {
|
84
85
|
await createProject(options)
|
85
86
|
}
|
package/src/main.js
CHANGED
@@ -8,9 +8,7 @@ import { promisify } from 'util'
|
|
8
8
|
import { createSpinner } from 'nanospinner'
|
9
9
|
import { download } from 'obtain-git-repo'
|
10
10
|
|
11
|
-
const access = promisify(fs.access)
|
12
11
|
const copy = promisify(ncp)
|
13
|
-
const writeFileSync = promisify(fs.writeFileSync)
|
14
12
|
|
15
13
|
const gitRepositoryList = [
|
16
14
|
{
|
@@ -31,7 +29,7 @@ async function copyTemplateFiles(templateDir, root) {
|
|
31
29
|
|
32
30
|
function writeFile(path, content) {
|
33
31
|
if (Object.keys(content).length > 0) {
|
34
|
-
writeFileSync(path, content)
|
32
|
+
fs.writeFileSync(path, content)
|
35
33
|
}
|
36
34
|
}
|
37
35
|
|
@@ -43,10 +41,11 @@ function editPackageJson(root, projectName) {
|
|
43
41
|
fs.readFileSync(path.join(root, `package.json`), 'utf-8')
|
44
42
|
)
|
45
43
|
|
44
|
+
console.log(projectName)
|
45
|
+
|
46
46
|
pkg.name = projectName
|
47
|
+
writeFile(path.join(root, 'package.json'), JSON.stringify(pkg, null, 2))
|
47
48
|
}
|
48
|
-
|
49
|
-
writeFile(path.join(root, 'package.json'), JSON.stringify(pkg, null, 2))
|
50
49
|
}
|
51
50
|
|
52
51
|
function doneLog(cwd, root) {
|
@@ -74,9 +73,9 @@ export async function createProject(options) {
|
|
74
73
|
`template-${options.template}`
|
75
74
|
)
|
76
75
|
|
77
|
-
|
78
|
-
|
79
|
-
|
76
|
+
const dirIsTemplate = fs.existsSync(templateDir)
|
77
|
+
|
78
|
+
if (!dirIsTemplate) {
|
80
79
|
if (!downloadGit) {
|
81
80
|
console.log(chalk.redBright('模版目录不存在'))
|
82
81
|
process.exit(1)
|
@@ -94,7 +93,7 @@ export async function createProject(options) {
|
|
94
93
|
if (downloadGit) {
|
95
94
|
const spinner = createSpinner(`开始下载...${downloadGit.git}`).start()
|
96
95
|
// 下载git代码
|
97
|
-
download(`direct:${downloadGit.git}`, root, { clone: true }, async function(err) {
|
96
|
+
download(`direct:${downloadGit.git}`, root, { clone: true }, async function (err) {
|
98
97
|
if (err) {
|
99
98
|
spinner.error({ text: '下载失败' })
|
100
99
|
} else {
|
@@ -102,26 +101,20 @@ export async function createProject(options) {
|
|
102
101
|
spinner.success({
|
103
102
|
text: '项目创建成功,请依次执行以下命令'
|
104
103
|
})
|
105
|
-
fs.
|
106
|
-
doneLog(cwd, root)
|
104
|
+
fs.doneLog(cwd, root)
|
107
105
|
}
|
108
106
|
})
|
109
107
|
} else {
|
110
|
-
let pkg = {}
|
111
|
-
|
112
|
-
if (fs.existsSync(path.join(templateDir, `package.json`))) {
|
113
|
-
pkg = JSON.parse(
|
114
|
-
fs.readFileSync(path.join(templateDir, `package.json`), 'utf-8')
|
115
|
-
)
|
116
|
-
|
117
|
-
pkg.name = options.projectName || getProjectName()
|
118
|
-
}
|
119
108
|
const tasks = new Listr(
|
120
109
|
[
|
121
110
|
{
|
122
|
-
title: '
|
111
|
+
title: '项目创建',
|
123
112
|
task: () => copyTemplateFiles(templateDir, root)
|
124
|
-
}
|
113
|
+
},
|
114
|
+
options.template !== 'mobile-vant-html' ? {
|
115
|
+
title: '项目文件修改',
|
116
|
+
task: () => editPackageJson(root, options.projectName || getProjectName())
|
117
|
+
} : {}
|
125
118
|
],
|
126
119
|
{
|
127
120
|
exitOnError: false
|
@@ -130,7 +123,6 @@ export async function createProject(options) {
|
|
130
123
|
|
131
124
|
await tasks.run()
|
132
125
|
|
133
|
-
await editPackageJson(root)
|
134
126
|
doneLog(cwd, root)
|
135
127
|
}
|
136
128
|
return true
|
@@ -8,8 +8,8 @@
|
|
8
8
|
"preview": "vite preview"
|
9
9
|
},
|
10
10
|
"dependencies": {
|
11
|
-
"@gx-design-vue/pro-hooks": "^0.
|
12
|
-
"@gx-design-vue/pro-utils": "^0.
|
11
|
+
"@gx-design-vue/pro-hooks": "^0.1.1",
|
12
|
+
"@gx-design-vue/pro-utils": "^0.1.1",
|
13
13
|
"@vueuse/core": "^9.10.0",
|
14
14
|
"@vueuse/shared": "^9.10.0",
|
15
15
|
"axios": "^1.1.3",
|
@@ -22,7 +22,7 @@
|
|
22
22
|
"qs": "^6.11.0",
|
23
23
|
"unocss": "^0.48.2",
|
24
24
|
"vant": "^4.0.8",
|
25
|
-
"vue": "^3.2.
|
25
|
+
"vue": "^3.2.45",
|
26
26
|
"vue-router": "^4.1.6"
|
27
27
|
},
|
28
28
|
"devDependencies": {
|
@@ -54,11 +54,11 @@
|
|
54
54
|
"typescript": "^4.6.4",
|
55
55
|
"unplugin-auto-import": "^0.11.4",
|
56
56
|
"unplugin-vue-components": "^0.22.9",
|
57
|
-
"vite": "^4.0.
|
57
|
+
"vite": "^4.0.4",
|
58
58
|
"vite-plugin-html": "^3.2.0",
|
59
59
|
"vite-plugin-mock": "^2.9.6",
|
60
60
|
"vite-plugin-vue-setup-extend": "^0.4.0",
|
61
61
|
"vue-eslint-parser": "^9.1.0",
|
62
62
|
"vue-tsc": "^1.0.9"
|
63
63
|
}
|
64
|
-
}
|
64
|
+
}
|