Skip to content

Commit

Permalink
chore: update ESLint to v6
Browse files Browse the repository at this point in the history
  • Loading branch information
mysticatea committed Jun 24, 2019
1 parent 082c03d commit 158c10b
Show file tree
Hide file tree
Showing 73 changed files with 113 additions and 102 deletions.
23 changes: 14 additions & 9 deletions .circleci/config.yml
Expand Up @@ -2,10 +2,10 @@ workflows:
version: 2
node-multi-build:
jobs:
- node-v6
- node-v8
- node-v10
- node-v10-minimal
- node-v12
- node-v12-minimal

version: 2
jobs:
Expand All @@ -31,10 +31,6 @@ jobs:
name: Test
command: npm test

node-v6:
<<: *node-base
docker:
- image: node:6
node-v8:
<<: *node-base
docker:
Expand All @@ -43,9 +39,14 @@ jobs:
<<: *node-base
docker:
- image: node:10
node-v10-minimal:
node-v12:
<<: *node-base
docker:
- image: node:10
- image: node:12

node-v12-minimal:
docker:
- image: node:12
steps:
- run:
name: Versions
Expand All @@ -59,7 +60,11 @@ jobs:
command: npm install
- run:
name: Install eslint 5
command: npm install eslint@5.0.0 --no-save
command: |
# We need to execute this command twice because of npm's bug.
# See also: https://npm.community/t/error-node-modules-staging-eslint-e7cf6846-node-modules-eslint
npm install eslint@5.0.0 --no-save
npm install eslint@5.0.0 --no-save
- run:
name: Test
command: npm test
Expand Down
3 changes: 2 additions & 1 deletion .eslintrc.js
@@ -1,7 +1,8 @@
'use strict'

module.exports = {
root: true,
// https://github.com/eslint/eslint/issues/11888
root: false,
parserOptions: {
ecmaVersion: 6
},
Expand Down
2 changes: 1 addition & 1 deletion docs/user-guide/README.md
Expand Up @@ -67,7 +67,7 @@ If you installed [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/

#### How to use custom parser?

If you want to use custom parsers such as [babel-eslint](https://www.npmjs.com/package/babel-eslint) or [typescript-eslint-parser](https://www.npmjs.com/package/typescript-eslint-parser), you have to use `parserOptions.parser` option instead of `parser` option. Because this plugin requires [vue-eslint-parser](https://www.npmjs.com/package/vue-eslint-parser) to parse `.vue` files, so this plugin doesn't work if you overwrote `parser` option.
If you want to use custom parsers such as [babel-eslint](https://www.npmjs.com/package/babel-eslint) or [@typescript-eslint/parser](https://www.npmjs.com/package/@typescript-eslint/parser), you have to use `parserOptions.parser` option instead of `parser` option. Because this plugin requires [vue-eslint-parser](https://www.npmjs.com/package/vue-eslint-parser) to parse `.vue` files, so this plugin doesn't work if you overwrote `parser` option.

```diff
- "parser": "babel-eslint",
Expand Down
9 changes: 5 additions & 4 deletions package.json
Expand Up @@ -50,18 +50,19 @@
},
"devDependencies": {
"@types/node": "^4.2.16",
"babel-eslint": "^8.2.2",
"@typescript-eslint/parser": "^1.11.0",
"babel-eslint": "^10.0.2",
"chai": "^4.1.0",
"eslint": "^5.11.1",
"eslint": "^6.0.0",
"eslint-plugin-eslint-plugin": "^2.0.1",
"eslint-plugin-vue-libs": "^3.0.0",
"eslint-plugin-vue": "file:.",
"eslint4b": "^5.1.0",
"lodash": "^4.17.4",
"mocha": "^5.2.0",
"nyc": "^12.0.2",
"semver": "^5.6.0",
"typescript": "^3.1.3",
"typescript-eslint-parser": "^20.0.0",
"typescript": "^3.5.2",
"vue-eslint-editor": "^0.1.4",
"vuepress": "^0.14.5"
}
Expand Down
2 changes: 2 additions & 0 deletions tests/lib/autofix.js
Expand Up @@ -5,6 +5,7 @@
'use strict'

const Linter = require('eslint').Linter
const parser = require('vue-eslint-parser')
const chai = require('chai')

const rules = require('../..').rules
Expand All @@ -24,6 +25,7 @@ const baseConfig = {

describe('Complex autofix test cases', () => {
const linter = new Linter()
linter.defineParser('vue-eslint-parser', parser)
for (const key of Object.keys(rules)) {
const ruleId = `vue/${key}`
linter.defineRule(ruleId, rules[key])
Expand Down
2 changes: 2 additions & 0 deletions tests/lib/rules-without-vue-eslint-parser.js
Expand Up @@ -5,6 +5,7 @@
'use strict'

const Linter = require('eslint').Linter
const parser = require('babel-eslint')
const rules = require('../..').rules

describe("Don't crash even if without vue-eslint-parser.", () => {
Expand All @@ -22,6 +23,7 @@ describe("Don't crash even if without vue-eslint-parser.", () => {
[ruleId]: 'error'
}
}
linter.defineParser('babel-eslint', parser)
linter.defineRule(ruleId, rules[key])
linter.verifyAndFix(code, config, 'test.vue')
})
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/array-bracket-spacing.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/array-bracket-spacing')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/arrow-spacing.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/arrow-spacing')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/attribute-hyphenation.js
Expand Up @@ -17,7 +17,7 @@ const RuleTester = require('eslint').RuleTester
// ------------------------------------------------------------------------------

const ruleTester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/attributes-order.js
Expand Up @@ -16,7 +16,7 @@ var RuleTester = require('eslint').RuleTester
// ------------------------------------------------------------------------------

var tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})
tester.run('attributes-order', rule, {
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/block-spacing.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/block-spacing')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/brace-style.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/brace-style')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/camelcase.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/camelcase')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/comma-dangle.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/comma-dangle')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2018 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/comment-directive.js
Expand Up @@ -20,7 +20,7 @@ const eslint = require('eslint')

// Initialize linter.
const linter = new eslint.CLIEngine({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: {
ecmaVersion: 2015
},
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/component-name-in-template-casing.js
Expand Up @@ -15,7 +15,7 @@ const RuleTester = require('eslint').RuleTester
// ------------------------------------------------------------------------------

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module'
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/eqeqeq.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/eqeqeq')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/html-closing-bracket-newline.js
Expand Up @@ -17,7 +17,7 @@ const RuleTester = require('eslint').RuleTester
// ------------------------------------------------------------------------------

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: {
ecmaVersion: 2015
}
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/html-closing-bracket-spacing.js
Expand Up @@ -16,7 +16,7 @@ const rule = require('../../../lib/rules/html-closing-bracket-spacing')
// -----------------------------------------------------------------------------

var ruleTester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: {
ecmaVersion: 2015
}
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/html-end-tags.js
Expand Up @@ -17,7 +17,7 @@ const rule = require('../../../lib/rules/html-end-tags')
// ------------------------------------------------------------------------------

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/html-indent.js
Expand Up @@ -95,7 +95,7 @@ function unIndent (strings) {
// ------------------------------------------------------------------------------

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: {
ecmaVersion: 2017,
ecmaFeatures: {
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/html-quotes.js
Expand Up @@ -17,7 +17,7 @@ const rule = require('../../../lib/rules/html-quotes')
// ------------------------------------------------------------------------------

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/html-self-closing.js
Expand Up @@ -17,7 +17,7 @@ const RuleTester = require('eslint').RuleTester
// ------------------------------------------------------------------------------

const tester = new RuleTester({
parser: 'vue-eslint-parser'
parser: require.resolve('vue-eslint-parser')
})

const ALL_CODE = `<template>
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/key-spacing.js
Expand Up @@ -7,7 +7,7 @@ const RuleTester = require('eslint').RuleTester
const rule = require('../../../lib/rules/key-spacing')

const tester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down
22 changes: 11 additions & 11 deletions tests/lib/rules/match-component-file-name.js
Expand Up @@ -128,7 +128,7 @@ ruleTester.run('match-component-file-name', rule, {
}
</script>
`,
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions // options default to [['jsx']]
},
{
Expand All @@ -142,7 +142,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['jsx'] }], // missing jsx in options
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},
{
Expand All @@ -155,7 +155,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},
{
Expand All @@ -166,7 +166,7 @@ ruleTester.run('match-component-file-name', rule, {
</template>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},
{
Expand All @@ -180,7 +180,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},
{
Expand All @@ -194,7 +194,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},
{
Expand All @@ -208,7 +208,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},
{
Expand All @@ -222,7 +222,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},
{
Expand All @@ -236,7 +236,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions
},

Expand Down Expand Up @@ -590,7 +590,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions,
errors: [{
message: 'Component name `MComponent` should match file name `MyComponent`.'
Expand All @@ -607,7 +607,7 @@ ruleTester.run('match-component-file-name', rule, {
</script>
`,
options: [{ extensions: ['vue'] }],
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions,
errors: [{
message: 'Component name `MComponent` should match file name `MyComponent`.'
Expand Down
2 changes: 1 addition & 1 deletion tests/lib/rules/max-attributes-per-line.js
Expand Up @@ -16,7 +16,7 @@ const rule = require('../../../lib/rules/max-attributes-per-line')
// ------------------------------------------------------------------------------

const ruleTester = new RuleTester({
parser: 'vue-eslint-parser',
parser: require.resolve('vue-eslint-parser'),
parserOptions: { ecmaVersion: 2015 }
})

Expand Down

0 comments on commit 158c10b

Please sign in to comment.