为什么eslint不处理从webpack loader转换的代码,而是扫描源文件?

c3frrgcw  于 2023-08-06  发布在  Webpack
关注(0)|答案(1)|浏览(142)

我使用create-react-app创建了这个项目,然后用npm run eject的方式弹出了这个项目,并在webpack.config.js中添加了我的自定义webpack加载器。
在myLoader.js中,我已经看到aaa转换为bbb,但eslint仍然报告错误'aaa' is not defined no-undef

{
              test: /\.(js|mjs|jsx|ts|tsx)$/,
              include: paths.appSrc,
              use: [
                {
                  loader: require.resolve('babel-loader'),
                  options: { },
                },
                require.resolve('../myLoader')  // here is my loader
              ]
            },
myLoader.js

module.exports = (src) => {
    const result = src.replace(/aaa/g, 'bbb')
    console.log(result)
    return result
}
app.js

const bbb = 'content'

function App() {
  return (
    <div className="App">

      <div> {aaa}</div>

    </div>
  );
}

export default App;
wwtsj6pe

wwtsj6pe1#

ESLint并不知道你在你的webpack加载器中做了一个替换,所以你可能想指示工具aaa最终会被定义。
您可以通过在eslint配置中告诉eslint aaa是一个全局变量或在使用aaa的文件中作为注解来实现这一点。

// .eslintrc.json
{
  "globals": {
    "aaa": "readable"
  }
}

个字符

相关问题