Skip to content

Commit 7ce91c8

Browse files
committed
workflow: enable eslint node/no-extraneous-require
1 parent ef2ecf5 commit 7ce91c8

File tree

25 files changed

+68
-36
lines changed

25 files changed

+68
-36
lines changed

.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ template
33
packages/test
44
temp
55
entry-wc.js
6+
dist

.eslintrc

-9
This file was deleted.

.eslintrc.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
module.exports = {
2+
extends: [
3+
"plugin:vue-libs/recommended"
4+
],
5+
plugins: [
6+
"node"
7+
],
8+
env: {
9+
"jest": true
10+
},
11+
rules: {
12+
"indent": ["error", 2, {
13+
"MemberExpression": "off"
14+
}],
15+
"node/no-extraneous-require": ["error", {
16+
"allowModules": [
17+
"@vue/cli-test-utils"
18+
]
19+
}]
20+
},
21+
overrides: [
22+
{
23+
files: ['**/__tests__/**/*.js', "**/cli-test-utils/**/*.js"],
24+
rules: {
25+
"node/no-extraneous-require": "off"
26+
}
27+
}
28+
]
29+
}

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"babel-core": "7.0.0-bridge.0",
4646
"debug": "^3.1.0",
4747
"eslint": "^4.16.0",
48+
"eslint-plugin-node": "^6.0.1",
4849
"eslint-plugin-vue-libs": "^2.1.0",
4950
"globby": "^8.0.1",
5051
"http-server": "^0.11.1",

packages/@vue/cli-plugin-e2e-cypress/index.js

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
1-
const chalk = require('chalk')
1+
module.exports = (api, options) => {
2+
const { info, chalk, execa } = require('@vue/cli-shared-utils')
23

3-
function removeArg (rawArgs, arg) {
4-
const matchRE = new RegExp(`^--${arg}`)
5-
const equalRE = new RegExp(`^--${arg}=`)
6-
const i = rawArgs.findIndex(arg => matchRE.test(arg))
7-
if (i > -1) {
8-
rawArgs.splice(i, equalRE.test(rawArgs[i]) ? 1 : 2)
9-
}
10-
}
4+
console.log(require('@vue/cli-shared-utils'))
115

12-
module.exports = (api, options) => {
136
api.registerCommand('test:e2e', {
147
description: 'run e2e tests with Cypress',
158
usage: 'vue-cli-service test:e2e [options]',
@@ -27,7 +20,6 @@ module.exports = (api, options) => {
2720
removeArg(rawArgs, 'mode')
2821
removeArg(rawArgs, 'url')
2922

30-
const { info } = require('@vue/cli-shared-utils')
3123
info(`Starting e2e tests...`)
3224

3325
const { url, server } = args.url
@@ -40,7 +32,6 @@ module.exports = (api, options) => {
4032
...rawArgs
4133
]
4234

43-
const execa = require('execa')
4435
const cypressBinPath = require.resolve('cypress/bin/cypress')
4536
const runner = execa(cypressBinPath, cyArgs, { stdio: 'inherit' })
4637
if (server) {
@@ -68,3 +59,12 @@ module.exports = (api, options) => {
6859
module.exports.defaultModes = {
6960
'test:e2e': 'production'
7061
}
62+
63+
function removeArg (rawArgs, arg) {
64+
const matchRE = new RegExp(`^--${arg}`)
65+
const equalRE = new RegExp(`^--${arg}=`)
66+
const i = rawArgs.findIndex(arg => matchRE.test(arg))
67+
if (i > -1) {
68+
rawArgs.splice(i, equalRE.test(rawArgs[i]) ? 1 : 2)
69+
}
70+
}

packages/@vue/cli-plugin-e2e-cypress/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"access": "public"
2323
},
2424
"dependencies": {
25+
"@vue/cli-shared-utils": "^3.0.0-beta.14",
2526
"cypress": "^2.1.0",
2627
"eslint-plugin-cypress": "^2.0.1"
2728
}

packages/@vue/cli-plugin-e2e-nightwatch/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"access": "public"
2323
},
2424
"dependencies": {
25+
"@vue/cli-shared-utils": "^3.0.0-beta.14",
2526
"chromedriver": "^2.38.3",
2627
"deepmerge": "^2.1.0",
2728
"execa": "^0.10.0",

packages/@vue/cli-plugin-eslint/lint.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ const renamedArgs = {
1717

1818
module.exports = function lint (args = {}, api) {
1919
const path = require('path')
20-
const chalk = require('chalk')
2120
const cwd = api.resolve('.')
2221
const { CLIEngine } = require('eslint')
23-
const { log, done, exit } = require('@vue/cli-shared-utils')
22+
const { log, done, exit, chalk } = require('@vue/cli-shared-utils')
2423

2524
const files = args._ && args._.length ? args._ : ['src', 'tests', '*.js']
2625
const extensions = require('./eslintOptions').extensions(api)

packages/@vue/cli-plugin-eslint/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"access": "public"
2323
},
2424
"dependencies": {
25+
"@vue/cli-shared-utils": "^3.0.0-beta.14",
2526
"babel-eslint": "^8.2.3",
2627
"eslint": "^4.19.1",
2728
"eslint-loader": "^2.0.0",

packages/@vue/cli-plugin-eslint/prompts.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
// these prompts are used if the plugin is late-installed into an existing
22
// project and invoked by `vue invoke`.
33

4-
const chalk = require('chalk')
5-
const { hasGit } = require('@vue/cli-shared-utils')
4+
const { chalk, hasGit } = require('@vue/cli-shared-utils')
65

76
module.exports = [
87
{

packages/@vue/cli-plugin-pwa/generator/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ module.exports = api => {
88
api.render('./template')
99

1010
if (api.invoking && api.hasPlugin('typescript')) {
11+
/* eslint-disable-next-line node/no-extraneous-require */
1112
const convertFiles = require('@vue/cli-plugin-typescript/generator/convert')
1213
convertFiles(api)
1314
}

packages/@vue/cli-plugin-typescript/lib/tslint.js

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ module.exports = function lint (args = {}, api, silent) {
44
const path = require('path')
55
const globby = require('globby')
66
const tslint = require('tslint')
7+
/* eslint-disable-next-line node/no-extraneous-require */
78
const vueCompiler = require('vue-template-compiler')
89

910
const options = {

packages/@vue/cli-plugin-typescript/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
},
2424
"dependencies": {
2525
"@types/node": "^9.3.0",
26+
"@vue/cli-shared-utils": "^3.0.0-beta.14",
2627
"fork-ts-checker-webpack-plugin": "^0.4.1",
2728
"globby": "^8.0.1",
2829
"ts-loader": "^4.3.0",

packages/@vue/cli-plugin-typescript/prompts.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
// these prompts are used if the plugin is late-installed into an existing
22
// project and invoked by `vue invoke`.
33

4-
const chalk = require('chalk')
5-
const { hasGit } = require('@vue/cli-shared-utils')
4+
const { chalk, hasGit } = require('@vue/cli-shared-utils')
65

76
module.exports = [
87
{

packages/@vue/cli-plugin-unit-jest/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module.exports = api => {
1313
process.env.VUE_CLI_BABEL_TARGET_NODE = true
1414
process.env.VUE_CLI_BABEL_TRANSPILE_MODULES = true
1515

16-
const execa = require('execa')
16+
const { execa } = require('@vue/cli-shared-utils')
1717
const jestBinPath = require.resolve('jest/bin/jest')
1818

1919
return new Promise((resolve, reject) => {

packages/@vue/cli-plugin-unit-jest/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"access": "public"
2323
},
2424
"dependencies": {
25-
"execa": "^0.10.0",
25+
"@vue/cli-shared-utils": "^3.0.0-beta.14",
2626
"jest": "^22.4.3",
2727
"jest-serializer-vue": "^1.0.0",
2828
"jest-transform-stub": "^1.0.0",

packages/@vue/cli-plugin-unit-mocha/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ module.exports = api => {
4343
// for @vue/babel-preset-app
4444
process.env.VUE_CLI_BABEL_TARGET_NODE = true
4545
// start runner
46-
const execa = require('execa')
46+
const { execa } = require('@vue/cli-shared-utils')
4747
const bin = require.resolve('mocha-webpack/bin/mocha-webpack')
4848
const hasInlineFilesGlob = args._ && args._.length
4949
const argv = [

packages/@vue/cli-plugin-unit-mocha/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
},
2222
"homepage": "https://github.com/vuejs/vue-cli/packages/@vue/cli-plugin-unit-mocha#readme",
2323
"dependencies": {
24-
"execa": "^0.10.0",
24+
"@vue/cli-shared-utils": "^3.0.0-beta.14",
2525
"jsdom": "^11.10.0",
2626
"jsdom-global": "^3.0.2",
2727
"mocha": "^5.1.1",

packages/@vue/cli-service/generator/router/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ module.exports = (api, options) => {
2828
})
2929

3030
if (api.hasPlugin('typescript')) {
31+
/* eslint-disable-next-line node/no-extraneous-require */
3132
const convertFiles = require('@vue/cli-plugin-typescript/generator/convert')
3233
convertFiles(api)
3334
}

packages/@vue/cli-service/generator/vuex/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module.exports = (api, options) => {
99
api.render('./template')
1010

1111
if (api.invoking && api.hasPlugin('typescript')) {
12+
/* eslint-disable-next-line node/no-extraneous-require */
1213
const convertFiles = require('@vue/cli-plugin-typescript/generator/convert')
1314
convertFiles(api)
1415
}

packages/@vue/cli-service/lib/config/base.js

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ module.exports = (api, options) => {
4848
// vue-loader --------------------------------------------------------------
4949
const vueLoaderCacheConfig = api.genCacheConfig('vue-loader', {
5050
'vue-loader': require('vue-loader/package.json').version,
51+
/* eslint-disable-next-line node/no-extraneous-require */
5152
'@vue/component-compiler-utils': require('@vue/component-compiler-utils/package.json').version,
5253
'vue-template-compiler': require('vue-template-compiler/package.json').version
5354
})

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

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"cliui": "^4.1.0",
3636
"copy-webpack-plugin": "^4.5.1",
3737
"css-loader": "^0.28.11",
38+
"debug": "^3.1.0",
3839
"escape-string-regexp": "^1.0.5",
3940
"file-loader": "^1.1.11",
4041
"friendly-errors-webpack-plugin": "^1.7.0",

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

+4
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,7 @@
1111
].forEach(m => {
1212
Object.assign(exports, require(`./lib/${m}`))
1313
})
14+
15+
exports.chalk = require('chalk')
16+
exports.execa = require('execa')
17+
exports.cmdShim = require('util').promisify(require('cmd-shim'))

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const chalk = require('chalk')
22
const invoke = require('./invoke')
33
const { loadOptions } = require('./options')
44
const { installPackage } = require('./util/installDeps')
5-
const { resolveModule } = require('./util/module')
5+
const { resolveModule, loadModule } = require('./util/module')
66
const {
77
log,
88
error,
@@ -46,14 +46,14 @@ async function add (pluginName, options = {}, context = process.cwd()) {
4646
async function addRouter (context) {
4747
invoke.runGenerator(context, {
4848
id: 'core:router',
49-
apply: require('@vue/cli-service/generator/router')
49+
apply: loadModule('@vue/cli-service/generator/router', context)
5050
})
5151
}
5252

5353
async function addVuex (context) {
5454
invoke.runGenerator(context, {
5555
id: 'core:vuex',
56-
apply: require('@vue/cli-service/generator/vuex')
56+
apply: loadModule('@vue/cli-service/generator/vuex', context)
5757
})
5858
}
5959

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
const fs = require('fs-extra')
44
const path = require('path')
5-
const { promisify } = require('util')
6-
const cmdShim = promisify(require('cmd-shim'))
5+
const { cmdShim } = require('@vue/cli-shared-utils')
76

87
exports.linkBin = async (src, dest) => {
98
if (!process.env.VUE_CLI_TEST && !process.env.VUE_CLI_DEBUG) {

0 commit comments

Comments
 (0)