Skip to content

Commit 9856549

Browse files
committed
refactor: refactor shared utils + move openBrowser
1 parent 4a7fd64 commit 9856549

File tree

13 files changed

+59
-29
lines changed

13 files changed

+59
-29
lines changed

packages/@vue/cli-service/lib/commands/serve.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const {
22
info,
33
error,
44
hasYarn,
5+
openBrowser,
56
clearConsole
67
} = require('@vue/cli-shared-utils')
78

@@ -37,7 +38,6 @@ module.exports = (api, options) => {
3738
const webpack = require('webpack')
3839
const WebpackDevServer = require('webpack-dev-server')
3940
const portfinder = require('portfinder')
40-
const openBrowser = require('../util/openBrowser')
4141
const prepareURLs = require('../util/prepareURLs')
4242
const prepareProxy = require('../util/prepareProxy')
4343
const launchEditorMiddleware = require('launch-editor-middleware')

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

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
"javascript-stringify": "^1.6.0",
4343
"launch-editor-middleware": "^2.2.0",
4444
"minimist": "^1.2.0",
45-
"opn": "^5.2.0",
4645
"optimize-css-assets-webpack-plugin": "^3.2.0",
4746
"ora": "^1.3.0",
4847
"portfinder": "^1.0.13",
+10-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
Object.assign(exports, require('./env'))
2-
Object.assign(exports, require('./logger'))
3-
Object.assign(exports, require('./validate'))
4-
Object.assign(exports, require('./linkBin'))
1+
[
2+
'env',
3+
'linkBin',
4+
'logger',
5+
'spinner',
6+
'validate',
7+
'openBrowser'
8+
].forEach(m => {
9+
Object.assign(exports, require(`./lib/${m}`))
10+
})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module.exports = function silence (exports) {
2+
const logs = {}
3+
Object.keys(exports).forEach(key => {
4+
if (key !== 'error') {
5+
exports[key] = (...args) => {
6+
if (!logs[key]) logs[key] = []
7+
logs[key].push(args)
8+
}
9+
}
10+
})
11+
exports.logs = logs
12+
}

packages/@vue/cli-shared-utils/logger.js renamed to packages/@vue/cli-shared-utils/lib/logger.js

+1-13
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
const chalk = require('chalk')
2-
const spinner = require('./spinner')
32
const readline = require('readline')
43
const padStart = require('string.prototype.padstart')
54

6-
Object.assign(exports, spinner)
7-
85
const format = (label, msg) => {
96
return msg.split('\n').map((line, i) => {
107
return i === 0
@@ -48,14 +45,5 @@ exports.clearConsole = title => {
4845

4946
// silent all logs except errors during tests and keep record
5047
if (process.env.VUE_CLI_TEST) {
51-
const logs = {}
52-
Object.keys(exports).forEach(key => {
53-
if (key !== 'error') {
54-
exports[key] = (...args) => {
55-
if (!logs[key]) logs[key] = []
56-
logs[key].push(args)
57-
}
58-
}
59-
})
60-
exports.logs = logs
48+
require('./_silence')(exports)
6149
}

packages/@vue/cli-service/lib/util/openBrowser.js renamed to packages/@vue/cli-shared-utils/lib/openBrowser.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
* https://github.com/facebookincubator/create-react-app/blob/master/LICENSE
77
*/
88

9+
const opn = require('opn')
10+
const execa = require('execa')
911
const chalk = require('chalk')
1012
const execSync = require('child_process').execSync
11-
const execa = require('execa')
12-
const opn = require('opn')
1313

1414
// https://github.com/sindresorhus/opn#app
1515
const OSX_CHROME = 'google chrome'
@@ -107,7 +107,7 @@ function startBrowserProcess (browser, url) {
107107
* Reads the BROWSER evironment variable and decides what to do with it. Returns
108108
* true if it opened a browser or ran a node.js script, otherwise false.
109109
*/
110-
function openBrowser (url) {
110+
exports.openBrowser = function (url) {
111111
const { action, value } = getBrowserEnv()
112112
switch (action) {
113113
case Actions.NONE:
@@ -121,5 +121,3 @@ function openBrowser (url) {
121121
throw new Error('Not implemented.')
122122
}
123123
}
124-
125-
module.exports = openBrowser

packages/@vue/cli-shared-utils/spinner.js renamed to packages/@vue/cli-shared-utils/lib/spinner.js

+5
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,8 @@ exports.pauseSpinner = () => {
4242
exports.resumeSpinner = () => {
4343
spinner.start()
4444
}
45+
46+
// silent all logs except errors during tests and keep record
47+
if (process.env.VUE_CLI_TEST) {
48+
require('./_silence')(exports)
49+
}

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
"dependencies": {
2222
"chalk": "^2.3.0",
2323
"cmd-shim": "^2.0.2",
24+
"execa": "^0.9.0",
2425
"joi": "^12.0.0",
26+
"opn": "^5.2.0",
2527
"ora": "^1.3.0",
26-
"readline": "^1.3.0",
2728
"string.prototype.padstart": "^3.0.0"
2829
},
2930
"publishConfig": {

yarn.lock

+25-4
Original file line numberDiff line numberDiff line change
@@ -6112,6 +6112,31 @@ levn@^0.3.0, levn@~0.3.0:
61126112
prelude-ls "~1.1.2"
61136113
type-check "~0.3.2"
61146114

6115+
lint-staged@^6.0.0:
6116+
version "6.1.0"
6117+
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-6.1.0.tgz#28f600c10a6cbd249ceb003118a1552e53544a93"
6118+
dependencies:
6119+
app-root-path "^2.0.0"
6120+
chalk "^2.1.0"
6121+
commander "^2.11.0"
6122+
cosmiconfig "^4.0.0"
6123+
debug "^3.1.0"
6124+
dedent "^0.7.0"
6125+
execa "^0.8.0"
6126+
find-parent-dir "^0.3.0"
6127+
is-glob "^4.0.0"
6128+
jest-validate "^21.1.0"
6129+
listr "^0.13.0"
6130+
lodash "^4.17.4"
6131+
log-symbols "^2.0.0"
6132+
minimatch "^3.0.0"
6133+
npm-which "^3.0.1"
6134+
p-map "^1.1.1"
6135+
path-is-inside "^1.0.2"
6136+
pify "^3.0.0"
6137+
staged-git-files "0.0.4"
6138+
stringify-object "^3.2.0"
6139+
61156140
lint-staged@^6.0.1:
61166141
version "6.0.1"
61176142
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-6.0.1.tgz#855f2993ab4a265430e2fd9828427e648d65e6b4"
@@ -8249,10 +8274,6 @@ readdirp@^2.0.0:
82498274
readable-stream "^2.0.2"
82508275
set-immediate-shim "^1.0.1"
82518276

8252-
readline@^1.3.0:
8253-
version "1.3.0"
8254-
resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c"
8255-
82568277
realpath-native@^1.0.0:
82578278
version "1.0.0"
82588279
resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0"

0 commit comments

Comments
 (0)