Skip to content

Commit aea43f5

Browse files
zyy7259mactanxin
authored andcommitted
feat: respect existing package.json (vuejs#4827)
1 parent a013a27 commit aea43f5

File tree

7 files changed

+26
-17
lines changed

7 files changed

+26
-17
lines changed

packages/@vue/cli-service/lib/Service.js

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
const fs = require('fs')
22
const path = require('path')
33
const debug = require('debug')
4-
const readPkg = require('read-pkg')
54
const merge = require('webpack-merge')
65
const Config = require('webpack-chain')
76
const PluginAPI = require('./PluginAPI')
87
const dotenv = require('dotenv')
98
const dotenvExpand = require('dotenv-expand')
109
const defaultsDeep = require('lodash.defaultsdeep')
11-
const { chalk, warn, error, isPlugin, resolvePluginId, loadModule } = require('@vue/cli-shared-utils')
10+
const { chalk, warn, error, isPlugin, resolvePluginId, loadModule, resolvePkg } = require('@vue/cli-shared-utils')
1211

1312
const { defaults, validate } = require('./options')
1413

@@ -44,16 +43,13 @@ module.exports = class Service {
4443
resolvePkg (inlinePkg, context = this.context) {
4544
if (inlinePkg) {
4645
return inlinePkg
47-
} else if (fs.existsSync(path.join(context, 'package.json'))) {
48-
const pkg = readPkg.sync({ cwd: context })
49-
if (pkg.vuePlugins && pkg.vuePlugins.resolveFrom) {
50-
this.pkgContext = path.resolve(context, pkg.vuePlugins.resolveFrom)
51-
return this.resolvePkg(null, this.pkgContext)
52-
}
53-
return pkg
54-
} else {
55-
return {}
5646
}
47+
const pkg = resolvePkg(context)
48+
if (pkg.vuePlugins && pkg.vuePlugins.resolveFrom) {
49+
this.pkgContext = path.resolve(context, pkg.vuePlugins.resolveFrom)
50+
return this.resolvePkg(null, this.pkgContext)
51+
}
52+
return pkg
5753
}
5854

5955
init (mode = process.env.VUE_CLI_MODE) {

packages/@vue/cli-service/package.json

-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@
6363
"minimist": "^1.2.0",
6464
"portfinder": "^1.0.25",
6565
"postcss-loader": "^3.0.0",
66-
"read-pkg": "^5.1.1",
6766
"ssri": "^7.1.0",
6867
"terser-webpack-plugin": "^2.2.1",
6968
"thread-loader": "^2.1.3",

packages/@vue/cli-shared-utils/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
'module',
77
'object',
88
'openBrowser',
9+
'pkg',
910
'pluginResolution',
1011
'launch',
1112
'request',
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const fs = require('fs')
2+
const path = require('path')
3+
const readPkg = require('read-pkg')
4+
5+
exports.resolvePkg = function (context) {
6+
if (fs.existsSync(path.join(context, 'package.json'))) {
7+
return readPkg.sync({ cwd: context })
8+
}
9+
return {}
10+
}

packages/@vue/cli-shared-utils/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"node-ipc": "^9.1.1",
2929
"open": "^6.3.0",
3030
"ora": "^3.4.0",
31+
"read-pkg": "^5.1.1",
3132
"request": "^2.87.0",
3233
"request-promise-native": "^1.0.8",
3334
"semver": "^6.1.0",

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const { formatFeatures } = require('./util/features')
1414
const loadLocalPreset = require('./util/loadLocalPreset')
1515
const loadRemotePreset = require('./util/loadRemotePreset')
1616
const generateReadme = require('./util/generateReadme')
17+
const { resolvePkg } = require('@vue/cli-shared-utils')
1718

1819
const {
1920
defaults,
@@ -146,7 +147,8 @@ module.exports = class Creator extends EventEmitter {
146147
name,
147148
version: '0.1.0',
148149
private: true,
149-
devDependencies: {}
150+
devDependencies: {},
151+
...resolvePkg(context)
150152
}
151153
const deps = Object.keys(preset.plugins)
152154
deps.forEach(dep => {

yarn.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -7045,7 +7045,7 @@ errorhandler@^1.5.1:
70457045
accepts "~1.3.7"
70467046
escape-html "~1.0.3"
70477047

7048-
es-abstract@^1.12.0, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.7.0:
7048+
es-abstract@^1.12.0, es-abstract@^1.5.1, es-abstract@^1.7.0:
70497049
version "1.16.2"
70507050
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.2.tgz#4e874331645e9925edef141e74fc4bd144669d34"
70517051
integrity sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==
@@ -7257,7 +7257,7 @@ eslint-plugin-vue-libs@^4.0.0:
72577257
babel-eslint "^10.0.1"
72587258
eslint-plugin-vue "^5.1.0"
72597259

7260-
eslint-plugin-vue@^5.1.0, eslint-plugin-vue@^5.2.2:
7260+
eslint-plugin-vue@^5.0.0, eslint-plugin-vue@^5.1.0, eslint-plugin-vue@^5.2.2:
72617261
version "5.2.3"
72627262
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961"
72637263
integrity sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw==
@@ -8277,7 +8277,7 @@ ftp@~0.3.10:
82778277
readable-stream "1.1.x"
82788278
xregexp "2.0.0"
82798279

8280-
function-bind@^1.0.2, function-bind@^1.1.1:
8280+
function-bind@^1.1.1:
82818281
version "1.1.1"
82828282
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
82838283
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
@@ -14839,7 +14839,7 @@ request-promise@^4.2.4:
1483914839
stealthy-require "^1.1.1"
1484014840
tough-cookie "^2.3.3"
1484114841

14842-
[email protected], request@^2.67.0, request@^2.83.0, request@^2.87.0, request@^2.88.0:
14842+
[email protected], request@^2.67.0, request@^2.87.0, request@^2.88.0:
1484314843
version "2.88.0"
1484414844
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
1484514845
integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==

0 commit comments

Comments
 (0)