-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathsao.js
82 lines (78 loc) · 1.92 KB
/
sao.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
const superb = require('superb')
const pascalCase = require('pascal-case')
module.exports = {
prompts: {
name: {
message: 'Type the package name',
default: ':folderName:'
},
description: {
message: 'Describe this component',
default() {
return `My ${superb()} Vue component.`
}
},
componentName: {
message: 'Type the component name in kebab-case',
default: 'foo-bar'
},
rollupPluginVue: {
message: 'Use rollup-plugin-vue to bundle .vue file',
type: 'confirm'
},
eslintPluginVue: {
message: 'Use eslint-plugin-vue to lint files',
type: 'confirm'
},
author: {
message: 'Type your name',
default: ':gitUser:',
store: true
},
gitUser: {
message: 'Type your GitHub username',
default: ':gitUser:',
store: true
},
email: {
message: 'Type your email address',
default: ':gitEmail:',
store: true
},
website: {
message: 'Type the url of your personal website',
default({ gitUser }) {
return `https://github.com/${gitUser}`
},
store: true
}
},
data({ componentName }) {
return {
pascalCasedComponentName: pascalCase(componentName)
}
},
move: {
gitignore: '.gitignore',
// @see https://github.com/vue-land/create-vue-component/issues/1
'_package.json': 'package.json',
editorconfig: '.editorconfig'
},
post({ yarnInstall, gitInit, chalk, pm, isNewFolder, folderName }) {
gitInit()
yarnInstall()
const cd = () => {
if (isNewFolder) {
console.log(` ${chalk.cyan('cd')} ${folderName}`)
}
}
console.log()
console.log(chalk.bold(` To run demo:\n`))
cd()
console.log(` ${chalk.cyan(pm)} run example\n`)
console.log(chalk.bold(` To build the component:\n`))
cd()
console.log(` ${chalk.cyan(pm)} run build`)
console.log()
}
}