Skip to content

Commit 4b4e460

Browse files
committed
perf: improve CLI startup performance
1 parent cd88cfa commit 4b4e460

File tree

4 files changed

+10
-11
lines changed

4 files changed

+10
-11
lines changed

packages/@vue/cli-shared-utils/lib/request.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
const request = require('request-promise-native')
2-
31
exports.request = {
42
get (uri) {
3+
// lazy require
4+
const request = require('request-promise-native')
55
const reqOpts = {
66
method: 'GET',
77
resolveWithFullResponse: true,

packages/@vue/cli-shared-utils/lib/validate.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
const joi = require('joi')
21
const { exit } = require('./exit')
32

43
// proxy to joi for option validation
5-
exports.createSchema = fn => fn(joi)
4+
exports.createSchema = fn => fn(require('joi'))
65

76
exports.validate = (obj, schema, cb) => {
8-
joi.validate(obj, schema, {}, err => {
7+
require('joi').validate(obj, schema, {}, err => {
98
if (err) {
109
cb(err.message)
1110
if (process.env.VUE_CLI_TEST) {
@@ -18,7 +17,7 @@ exports.validate = (obj, schema, cb) => {
1817
}
1918

2019
exports.validateSync = (obj, schema) => {
21-
const result = joi.validate(obj, schema)
20+
const result = require('joi').validate(obj, schema)
2221
if (result.error) {
2322
throw result.error
2423
}

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
const fs = require('fs')
22
const ejs = require('ejs')
33
const path = require('path')
4-
const globby = require('globby')
54
const merge = require('deepmerge')
65
const resolve = require('resolve')
76
const isBinary = require('isbinaryfile')
8-
const yaml = require('yaml-front-matter')
97
const mergeDeps = require('./util/mergeDeps')
108
const stringifyJS = require('./util/stringifyJS')
11-
const { warn, getPluginLink, toShortPluginId } = require('@vue/cli-shared-utils')
129
const ConfigTransform = require('./ConfigTransform')
10+
const { getPluginLink, toShortPluginId } = require('@vue/cli-shared-utils')
1311

1412
const isString = val => typeof val === 'string'
1513
const isFunction = val => typeof val === 'function'
@@ -107,6 +105,7 @@ class GeneratorAPI {
107105
!options.file
108106
) {
109107
if (hasReserved) {
108+
const { warn } = require('@vue/cli-shared-utils')
110109
warn(`Reserved config transform '${key}'`)
111110
}
112111
return
@@ -167,6 +166,7 @@ class GeneratorAPI {
167166
source = path.resolve(baseDir, source)
168167
this._injectFileMiddleware(async (files) => {
169168
const data = this._resolveData(additionalData)
169+
const globby = require('globby')
170170
const _files = await globby(['**/*'], { cwd: source })
171171
for (const rawPath of _files) {
172172
let filename = path.basename(rawPath)
@@ -311,6 +311,7 @@ function renderFile (name, data, ejsOptions) {
311311
// - !!js/regexp /foo/
312312
// - !!js/regexp /bar/
313313
// ---
314+
const yaml = require('yaml-front-matter')
314315
const parsed = yaml.loadFront(template)
315316
const content = parsed.__content
316317
let finalTemplate = content.trim() + `\n`

packages/@vue/cli/lib/util/stringifyJS.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
const stringify = require('javascript-stringify')
2-
31
module.exports = function stringifyJS (value) {
2+
const stringify = require('javascript-stringify')
43
return stringify(value, (val, indent, stringify) => {
54
if (val && val.__expression) {
65
return val.__expression

0 commit comments

Comments
 (0)