Vue lint rules not being applied beyond entry point (not traversing subdirectories).
See original GitHub issueTo help out others… I spent more hours on this than I care to count… for those trying to setup auto ESlinting with webpack 3.x eslint-plugin-vue v3.x, eslint-friendly-formatter v3.x and eslint-html-plugin v3.x, read on (note I’m using Sublime Text 3):
If I comment out .vue
from eslint-plugin-html
settings everything seems to work:
to help others, in the .eslintrc.js:
module.exports = {
env: {
browser: true,
commonjs: true,
es6: true,
node: true,
},
plugins: [
'html',
],
settings: {
// if you have .vue active for eslint-html-plugin settings
// linting will not progress through all subdirectories
// it conflicts with eslint-plugin-vue (latest v3.5.0)
// it will stop at the main entry point.
"html/html-extensions": [".html", /* ".vue" */], // consider .html files as XML
"html/report-bad-indent": "error",
},
extends: [
'eslint:recommended',
'plugin:vue/recommended' // or 'plugin:vue/base'
],
parserOptions: {
sourceType: 'module',
},
rules: {
'comma-dangle': ['error', 'always-multiline'],
indent: ['error', 2],
'linebreak-style': ['error', 'unix'],
quotes: ['error', 'single'],
semi: ['error', 'always'],
'no-unused-vars': ['warn'],
'no-console': 0,
'vue/order-in-components': [2, {
order: [
['name', 'delimiters', 'functional', 'model'],
['components', 'directives', 'filters'],
['parent', 'mixins', 'extends', 'provide', 'inject'],
'el',
'template',
'props',
'propsData',
'data',
'computed',
'watch',
'lifecycle_hooks',
'methods',
'render',
'renderError'
]
}] // END order
},
};
in the ignore file:
# ESlint #
##########
/tmp/**
test.js
webpack.config.js
/webpack.config.js
**/webpack.config.js
in the webpack config:
in the webpack config
// within rules
{
enforce: 'pre', // with this eslint will not process files done by babel-loader
test: /\.(vue|js)$/, // /\.js$/,
loader: 'eslint-loader',
exclude: /node_modules/,
options: {
emitWarning: true,
// community formatter
formatter: require('eslint-friendly-formatter'),
// cache: DEVELOPMENT,
fix: true, // Set to true for eslint autofixing
// quite: true, // Process report errors only and ignore warnings
},
}, {
test: /\.vue$/,
loader: 'vue-loader', // Used for Vue Templates. Also Hot Module Replacement only works with .vue files
options: {
loaders: {
}
// other vue-loader options go here
}
},
Issue Analytics
- State:
- Created 6 years ago
- Reactions:3
- Comments:5 (3 by maintainers)
Top Results From Across the Web
Vue 3 The template root requires exactly one element. eslint ...
I ended up turning off Vetur linting. Vetur thinks that it is a Vue 2 project becuase it is in a VS Code...
Read more >Software Engineering Archives - Page 10 of 15 - InRhythm
This post assumes that you are already familiar with modern build tools like Webpack, Rollup or Browserify and aware of the benefits of...
Read more >Efficient Code Analyzing and Formatting (for Vue.js) with ...
I do not cover all parts of it, e.g., the crucial concept of automated ... But it is possible to disable all ESLint...
Read more >eslint | Yarn - Package Manager
ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code. In many ways, it is similar to JSLint and...
Read more >User and Workspace Settings - Visual Studio Code
json file and not the Setting editor UI. Settings file locations. Depending on your platform, the user settings file is located here: Windows...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
there is already proposal in #46
I think we can safely assume, that we’ll not going to fix this. But instead we’re going to add more rules for indentation and so on. So that this will be the only eslint plugin you’ll ever need for any vue app (in terms of templating), on JS side you should be able to easily use other plugins too. Do you agree with me @mysticatea ?