Skip to content

Commit 9fe2f01

Browse files
committed
feat: respect existing package.json
1 parent 1c41371 commit 9fe2f01

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

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

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
const fs = require('fs')
12
const path = require('path')
23
const chalk = require('chalk')
34
const debug = require('debug')
45
const execa = require('execa')
56
const inquirer = require('inquirer')
7+
const readPkg = require('read-pkg')
68
const semver = require('semver')
79
const EventEmitter = require('events')
810
const Generator = require('./Generator')
@@ -139,12 +141,7 @@ module.exports = class Creator extends EventEmitter {
139141
latestMinor = current
140142
}
141143
// generate package.json with plugin dependencies
142-
const pkg = {
143-
name,
144-
version: '0.1.0',
145-
private: true,
146-
devDependencies: {}
147-
}
144+
const pkg = this.resolvePkg()
148145
const deps = Object.keys(preset.plugins)
149146
deps.forEach(dep => {
150147
if (preset.plugins[dep]._isPreset) {
@@ -512,6 +509,22 @@ module.exports = class Creator extends EventEmitter {
512509
return prompts
513510
}
514511

512+
resolvePkg () {
513+
let existingPkg = {}
514+
if (fs.existsSync(path.join(this.context, 'package.json'))) {
515+
existingPkg = readPkg.sync({ cwd: this.context })
516+
}
517+
const { name, version, devDependencies, ...more } = existingPkg
518+
const pkg = {
519+
name: name || this.name,
520+
version: version || '0.1.0',
521+
private: true,
522+
devDependencies: devDependencies || {},
523+
...more
524+
}
525+
return pkg
526+
}
527+
515528
shouldInitGit (cliOptions) {
516529
if (!hasGit()) {
517530
return false

packages/@vue/cli/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"lodash.clonedeep": "^4.5.0",
5151
"lru-cache": "^5.1.1",
5252
"minimist": "^1.2.0",
53+
"read-pkg": "^5.1.1",
5354
"recast": "^0.18.1",
5455
"request": "^2.87.0",
5556
"request-promise-native": "^1.0.7",

0 commit comments

Comments
 (0)