Skip to content

Commit 278e992

Browse files
arthurdennerAkryum
authored andcommitted
feat: Generating README.md (vuejs#1717)
* feat: Generating README.md based on the package.json * refactor: Adding missing scripts, changing descriptions and improving code * chore: Moving stopSpinner to correct position and adding comment * chore: Changing description to script test:e2e * refactor: Removing unnecessary `if`
1 parent 20bbff0 commit 278e992

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

packages/@vue/cli/lib/Creator.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const PromptModuleAPI = require('./PromptModuleAPI')
1515
const writeFileTree = require('./util/writeFileTree')
1616
const { formatFeatures } = require('./util/features')
1717
const fetchRemotePreset = require('./util/fetchRemotePreset')
18+
const generateReadme = require('./util/generateReadme')
1819

1920
const {
2021
defaults,
@@ -184,6 +185,14 @@ module.exports = class Creator extends EventEmitter {
184185
}
185186
}
186187

188+
// generate README.md
189+
stopSpinner()
190+
log()
191+
logWithSpinner('📄', 'Generating README.md...')
192+
await writeFileTree(context, {
193+
'README.md': generateReadme(generator.pkg, packageManager)
194+
})
195+
187196
// log instructions
188197
stopSpinner()
189198
log()
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
const descriptions = {
2+
build: 'Compiles and minifies for production',
3+
serve: 'Compiles and hot-reloads for development',
4+
lint: 'Lints and fixes files',
5+
test: 'Run your tests',
6+
'test:e2e': 'Run your end-to-end tests',
7+
'test:unit': 'Run your unit tests'
8+
}
9+
10+
function printScripts (pkg, packageManager) {
11+
return Object.keys(pkg.scripts).map(key => {
12+
return [
13+
`\n### ${descriptions[key]}`,
14+
`${packageManager} run ${key}\n`
15+
].join('\n')
16+
}).join('')
17+
}
18+
19+
module.exports = function generateReadme (pkg, packageManager) {
20+
return [
21+
`# ${pkg.name}\n`,
22+
'## Project setup',
23+
`${packageManager} install`,
24+
printScripts(pkg, packageManager)
25+
].join('\n')
26+
}

0 commit comments

Comments
 (0)