Next.js + eslint:无法解析模块“fs/promises”的路径

问题描述

我启动了一个 Next.js 应用程序并配置了 eslint。 我的开发依赖项列表是:

"devDependencies": {
    "babel-eslint": "^10.1.0","eslint": "^7.21.0","eslint-config-airbnb": "^18.2.1","eslint-config-prettier": "^8.1.0","eslint-plugin-import": "^2.22.1","eslint-plugin-jsx-a11y": "^6.4.1","eslint-plugin-prettier": "^3.3.1","eslint-plugin-react": "^7.22.0","eslint-plugin-react-hooks": "^4.2.0"
}

我的 .eslintrc 文件是:

{
    "env": {
        "browser": true,"commonjs": true,"es6": true,"node": true
    },"parser": "babel-eslint","extends": [
        "eslint:recommended","airbnb","airbnb/hooks","plugin:react/recommended","plugin:import/errors","plugin:import/warnings","plugin:jsx-a11y/recommended","prettier"
    ],"globals": {
        "Atomics": "readonly","SharedArrayBuffer": "readonly"
    },"parserOptions": {
        "ecmaFeatures": {
            "jsx": true
        },"ecmaVersion": 11,"sourceType": "module"
    },"settings": {
        "react": {
            "version": "detect"
        }
    },"plugins": [
        "react","react-hooks"
    ],"rules": {
        "react/react-in-jsx-scope": "off","react/jsx-filename-extension": [
            1,{
                "extensions": [
                    ".js",".jsx"
                ]
            }
        ],"react/display-name": 1,"react/jsx-props-no-spreading": "off","react/prop-types": "off","jsx-a11y/anchor-is-valid": "off"
    }
}

我的 Node 版本是最新的 15.11(如果重要的话,我使用的是 MacOS)。

问题是我正在导入:

import fs from 'fs/promises';

和 eslint 抛出

Unable to resolve path to module 'fs/promises'.

否则,脚本可以工作,但我不明白是什么触发了错误

有人可以帮忙吗?

MCVE

yarn add -D eslint babel-eslint eslint-config-airbnb eslint eslint-plugin-jsx-a11y eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-config-prettier eslint-plugin-prettier

.eslintrc 文件:(如上面我的问题正文)

file-example.js

import path from 'path';
import fs from 'fs/promises'; // <= this throws "Unable to resolve path to module 'fs/promises'.

function HomePage(props) {
  const { products } = props;
  return (
    <ul>
      {products.map((product) => (
        <li key={product.id}>{product.title}</li>
      ))}
    </ul>
  );
}

export async function getStaticProps() {
  const filePath = path.join(process.cwd(),'data','dummy-backend.json');
  const jsonData = await fs.readFile(filePath);
  const data = JSON.parse(jsonData);

  return {
    props: {
      products: data.products,},};
}

export default HomePage;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)