|
| 1 | +const fs = require('fs') |
1 | 2 | const path = require('path')
|
2 | 3 | const chalk = require('chalk')
|
3 | 4 | const debug = require('debug')
|
4 | 5 | const execa = require('execa')
|
5 | 6 | const inquirer = require('inquirer')
|
| 7 | +const readPkg = require('read-pkg') |
6 | 8 | const semver = require('semver')
|
7 | 9 | const EventEmitter = require('events')
|
8 | 10 | const Generator = require('./Generator')
|
@@ -139,12 +141,7 @@ module.exports = class Creator extends EventEmitter {
|
139 | 141 | latestMinor = current
|
140 | 142 | }
|
141 | 143 | // 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() |
148 | 145 | const deps = Object.keys(preset.plugins)
|
149 | 146 | deps.forEach(dep => {
|
150 | 147 | if (preset.plugins[dep]._isPreset) {
|
@@ -512,6 +509,22 @@ module.exports = class Creator extends EventEmitter {
|
512 | 509 | return prompts
|
513 | 510 | }
|
514 | 511 |
|
| 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 | + |
515 | 528 | shouldInitGit (cliOptions) {
|
516 | 529 | if (!hasGit()) {
|
517 | 530 | return false
|
|
0 commit comments