|
| 1 | +const fs = require('fs') |
1 | 2 | const path = require('path')
|
2 | 3 | const debug = require('debug')
|
3 | 4 | const inquirer = require('inquirer')
|
| 5 | +const readPkg = require('read-pkg') |
4 | 6 | const EventEmitter = require('events')
|
5 | 7 | const Generator = require('./Generator')
|
6 | 8 | const cloneDeep = require('lodash.clonedeep')
|
@@ -142,12 +144,7 @@ module.exports = class Creator extends EventEmitter {
|
142 | 144 | latestMinor = current
|
143 | 145 | }
|
144 | 146 | // generate package.json with plugin dependencies
|
145 |
| - const pkg = { |
146 |
| - name, |
147 |
| - version: '0.1.0', |
148 |
| - private: true, |
149 |
| - devDependencies: {} |
150 |
| - } |
| 147 | + const pkg = this.resolvePkg() |
151 | 148 | const deps = Object.keys(preset.plugins)
|
152 | 149 | deps.forEach(dep => {
|
153 | 150 | if (preset.plugins[dep]._isPreset) {
|
@@ -515,6 +512,22 @@ module.exports = class Creator extends EventEmitter {
|
515 | 512 | return prompts
|
516 | 513 | }
|
517 | 514 |
|
| 515 | + resolvePkg () { |
| 516 | + let existingPkg = {} |
| 517 | + if (fs.existsSync(path.join(this.context, 'package.json'))) { |
| 518 | + existingPkg = readPkg.sync({ cwd: this.context }) |
| 519 | + } |
| 520 | + const { name, version, devDependencies, ...more } = existingPkg |
| 521 | + const pkg = { |
| 522 | + name: name || this.name, |
| 523 | + version: version || '0.1.0', |
| 524 | + private: true, |
| 525 | + devDependencies: devDependencies || {}, |
| 526 | + ...more |
| 527 | + } |
| 528 | + return pkg |
| 529 | + } |
| 530 | + |
518 | 531 | shouldInitGit (cliOptions) {
|
519 | 532 | if (!hasGit()) {
|
520 | 533 | return false
|
|
0 commit comments