Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to manually add a path to be resolved in eslintrc

I have a folder in my project main that I am resolving like a module. For instance import x from 'main/src' imports main/src/index.js. This is done through webpack's resolve alias configuration.

An issue I am having is getting rid of the errors via eslint. I know eslint provides a webpack resolve plugin, however, I've been having trouble getting it to work. I suspect it is because I am on webpack 2 and using es6 in my webpack config files.

Is there a manual way to write a resolve setting that fixes this problem for my eslint?


The only other hack I've seen work is using import/core-modules but then I have to list out every folder in the subdirectory tree main/src/bar, main/src/foo. This would not be ideal.

like image 669
wlingke Avatar asked Jan 20 '17 18:01

wlingke


People also ask

Where is .eslintrc located?

Go to settings --> packages --> linter-eslint settings. On that menu, look for the . eslintrc Path option. For your particular preference, you would put ~/.

What is an Eslintrc file?

The file. eslintrc. js is a configuration file for a tool named ESLINT. ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code, with the goal of making code more consistent and avoiding bugs.


2 Answers

I think the link below helps you. You can add resolving directories by using config.

https://github.com/benmosher/eslint-plugin-import#resolvers

For example, if you want to resolve src/, you can write like below on .eslintrc.

{   "settings": {     "import/resolver": {       "node": {         "paths": ["src"]       }     }   } } 

Then ESLint resolve from src directory. You can require src/hoge/moge.js by writing const moge = require('hoge/moge'); and ESLint knows it.

like image 123
Sota Sugiura Avatar answered Sep 28 '22 04:09

Sota Sugiura


Too late to see this question. Actually, there is already a resolver named eslint-import-resolver-alias that implements this functionality with the below setting.

{   settings: {     'import/resolver': {       'alias': [         ['main/src', './main/src']        ]      }   } } 
like image 37
johvin Avatar answered Sep 28 '22 02:09

johvin