我的项目main
中有一个文件夹,我正在像模块一样解析。例如import x from 'main/src'
导入main/src/index.js
。这是通过webpack的解析别名配置完成的。
我遇到的问题是通过eslint摆脱错误。我知道eslint提供了一个webpack resolve插件,但是,我一直无法让它工作。我怀疑是因为我在webpack 2上并在我的webpack配置文件中使用es6。
是否有手动方式来编写解决方案来解决我的问题?
我见过的唯一其他黑客工作是使用import/core-modules
,但我必须列出子目录树main/src/bar
,main/src/foo
中的每个文件夹。这不太理想。
答案 0 :(得分:81)
我认为以下链接可以帮助您。 您可以使用config添加解析目录。
https://github.com/benmosher/eslint-plugin-import#resolvers
例如,如果您要解析src/
,可以在.eslintrc
上书写如下。
{
"settings": {
"import/resolver": {
"node": {
"paths": ["src"]
}
}
}
}
然后ESLint从src目录解析。
您可以通过编写src/hoge/moge.js
并且ESLint知道它来要求const moge = require('hoge/moge');
。
答案 1 :(得分:8)
看到这个问题太迟了。实际上,已经有一个名为eslint-import-resolver-alias的解析器,它使用以下设置实现此功能。
{
settings: {
'import/resolver': {
'alias': [
['main/src', './main/src']
]
}
}
}
答案 2 :(得分:5)
我遇到了类似的问题:ESLint
无法解析相对于我的"baseUrl": "src"
中的指令tsconfig.json
导入的模块。
设法解决了与标记为解决方案答案类似的问题,除了我必须添加扩展数组。因此,我在.eslintrc.js
中添加了以下内容:
settings: {
'import/resolver': {
node: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
paths: ['./src']
}
}
},
希望这对某人有帮助。我的解决方案的来源实际上是package's npm page。
答案 3 :(得分:4)
我的工作湿润
.eslintrc.js
settings: {
'import/resolver': {
node: {
paths: ['.'],
},
},
},
和tsconfig.json
{
"compilerOptions": {
...
"baseUrl": "./",
...
},
}
答案 4 :(得分:2)
我在webpack上遇到了同样的问题。我安装了eslint-import-resolver-webpack并因此更新了.eslintrc
self.$router.replace(`patient/${encodeURIComponent(authUser.email)}`)
答案 5 :(得分:1)
对于我来说,当我尝试在其中导入react-native-svg
包时,我在React中遇到了这样的错误。我这样做是因为我在React和React-Native中都使用了一个代码库。因此,对我来说,以下代码在.eslintrc
中有效:
"import/no-unresolved": [
2,
{
ignore: [
'react-native-svg'
]
}],
希望这对其他人有帮助
答案 6 :(得分:-1)
正如 Zip184 在上面的评论中所述 如果你有多个 webpack 配置,你必须指定配置的路径
"settings": {
"import/resolver": {
"webpack": {
"config": "webpack.common.js"
}
}
}