Eslint错误导入jsx而没有扩展名

gaz*_*i86 16 javascript ecmascript-6 eslint webpack

我想在es6中导入jsx文件而不需要.jsx扩展名:

import LoginErrorDialog from './LoginErrorDialogView';
Run Code Online (Sandbox Code Playgroud)

不:

import LoginErrorDialog from './LoginErrorDialogView.jsx';
Run Code Online (Sandbox Code Playgroud)

虽然我已经成功地以这种方式导入webpack:

export default {
  entry: './src/ui/js/app.js',
  output: {
    publicPath: '/',
    filename: 'bundle.js'
  },
  resolve: {
    extensions: ['.js', '.jsx'],
Run Code Online (Sandbox Code Playgroud)

Eslint(esw webpack.config.* ./ --color --ext .js --ext .jsx)仍然是错误的.

Unable to resolve path to module './LoginView' import/no-unresolved

有任何想法吗?

小智 11

我在这里遇到了同样的问题,我修复了在.eslint中添加额外配置的问题.

扩展属性添加:

"plugin:import/react"
Run Code Online (Sandbox Code Playgroud)

设置属性添加:

"import/resolver": {
  "node": {
    "extensions": [".js",".jsx"]
   }
}
Run Code Online (Sandbox Code Playgroud)

你的.eslint会是类似的:

{
    "extends": [
        ...
        "plugin:import/react",
        ...
    ],
   ...
    "settings": {
        "import/resolver": {
          "node": {
            "extensions": [".js",".jsx"]
          }
        }
    },
...
}
Run Code Online (Sandbox Code Playgroud)