首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ESLint -错误:必须使用导入加载ES模块

ESLint -错误:必须使用导入加载ES模块
EN

Stack Overflow用户
提问于 2021-10-13 03:14:45
回答 7查看 99.5K关注 0票数 162

目前,我正在使用React、TypeScript、样式组件、Webpack等设置样板,并且在尝试运行ESLint时遇到错误。

错误:必须使用导入加载ES模块

下面是更详细的错误版本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/Users/ben/Desktop/development projects/react-boilerplate-styled-context/src/api/api.ts
  0:0  error  Parsing error: Must use import to load ES Module: /Users/ben/Desktop/development projects/react-boilerplate-styled-context/node_modules/eslint/node_modules/eslint-scope/lib/definition.js
require() of ES modules is not supported.
require() of /Users/ben/Desktop/development projects/react-boilerplate-styled-context/node_modules/eslint/node_modules/eslint-scope/lib/definition.js from /Users/ben/Desktop/development projects/react-boilerplate-styled-context/node_modules/babel-eslint/lib/require-from-eslint.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename definition.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /Users/ben/Desktop/development projects/react-boilerplate-styled-context/node_modules/eslint/node_modules/eslint-scope/package.json

错误发生在我的每个.js和. .ts/ .tsx文件中,其中我只使用import,或者文件甚至根本没有导入。我理解错误是什么意思,但我不知道为什么要抛出它,而实际上,我只在某些文件中使用导入,甚至根本不使用导入。

下面是我的package.json文件,其中我使用npm run lint:eslint:quiet触发了链接器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "my-react-boilerplate",
  "version": "1.0.0",
  "description": "",
  "main": "index.tsx",
  "directories": {
    "test": "test"
  },
  "engines": {
    "node": ">=14.0.0"
  },
  "type": "module",
  "scripts": {
    "build": "webpack --config webpack.prod.js",
    "dev": "webpack serve --config webpack.dev.js",
    "lint": "npm run typecheck && npm run lint:css && npm run lint:eslint:quiet",
    "lint:css": "stylelint './src/**/*.{js,ts,tsx}'",
    "lint:eslint:quiet": "eslint --ext .ts,.tsx,.js,.jsx  ./src --no-error-on-unmatched-pattern --quiet",
    "lint:eslint": "eslint --ext .ts,.tsx,.js,.jsx  ./src --no-error-on-unmatched-pattern",
    "lint:eslint:fix": "eslint --ext .ts,.tsx,.js,.jsx  ./src --no-error-on-unmatched-pattern --quiet --fix",
    "test": "cross-env NODE_ENV=test jest --coverage",
    "test:watch": "cross-env NODE_ENV=test jest --watchAll",
    "typecheck": "tsc --noEmit",
    "precommit": "npm run lint"
  },
  "lint-staged": {
    "*.{ts,tsx,js,jsx}": [
      "npm run lint:eslint:fix",
      "git add --force"
    ],
    "*.{md,json}": [
      "prettier --write",
      "git add --force"
    ]
  },
  "husky": {
    "hooks": {
      "pre-commit": "npx lint-staged && npm run typecheck"
    }
  },
  "resolutions": {
    "styled-components": "^5"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.5.4",
    "@babel/plugin-proposal-class-properties": "^7.5.0",
    "@babel/preset-env": "^7.5.4",
    "@babel/preset-react": "^7.0.0",
    "@types/history": "^4.7.6",
    "@types/react": "^17.0.29",
    "@types/react-dom": "^17.0.9",
    "@types/react-router": "^5.1.17",
    "@types/react-router-dom": "^5.1.5",
    "@types/styled-components": "^5.1.15",
    "@typescript-eslint/eslint-plugin": "^5.0.0",
    "babel-cli": "^6.26.0",
    "babel-eslint": "^10.0.2",
    "babel-loader": "^8.0.0-beta.6",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "clean-webpack-plugin": "^4.0.0",
    "dotenv-webpack": "^7.0.3",
    "error-overlay-webpack-plugin": "^1.0.0",
    "eslint": "^8.0.0",
    "eslint-config-airbnb": "^18.2.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-config-with-prettier": "^6.0.0",
    "eslint-plugin-compat": "^3.3.0",
    "eslint-plugin-import": "^2.25.2",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-prettier": "^4.0.0",
    "eslint-plugin-react": "^7.14.2",
    "eslint-plugin-react-hooks": "^4.2.0",
    "extract-text-webpack-plugin": "^3.0.2",
    "file-loader": "^6.2.0",
    "html-webpack-plugin": "^5.3.2",
    "husky": "^7.0.2",
    "prettier": "^2.4.1",
    "raw-loader": "^4.0.2",
    "style-loader": "^3.3.0",
    "stylelint": "^13.13.1",
    "stylelint-config-recommended": "^5.0.0",
    "stylelint-config-styled-components": "^0.1.1",
    "stylelint-processor-styled-components": "^1.10.0",
    "ts-loader": "^9.2.6",
    "tslint": "^6.1.3",
    "typescript": "^4.4.4",
    "url-loader": "^4.1.1",
    "webpack": "^5.58.2",
    "webpack-cli": "^4.2.0",
    "webpack-dev-server": "^4.3.1",
    "webpack-merge": "^5.3.0"
  },
  "dependencies": {
    "history": "^4.10.0",
    "process": "^0.11.10",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "react-router-dom": "^5.2.0",
    "styled-components": "^5.2.1"
  }
}

这是我的.eslintrc文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "extends": ["airbnb", "prettier"],
  "parser": "babel-eslint",
  "plugins": ["prettier", "@typescript-eslint"],
  "parserOptions": {
    "ecmaVersion": 8,
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true,
      "impliedStrict": true,
      "classes": true
    }
  },
  "env": {
    "browser": true,
    "node": true,
    "jest": true
  },
  "rules": {
    "arrow-body-style": ["error", "as-needed"],
    "class-methods-use-this": 0,
    "react/jsx-filename-extension": 0,
    "global-require": 0,
    "react/destructuring-assignment": 0,
    "import/named": 2,
    "linebreak-style": 0,
    "import/no-dynamic-require": 0,
    "import/no-named-as-default": 0,
    "import/no-unresolved": 2,
    "import/prefer-default-export": 0,
    "semi": [2, "always"],
    "max-len": [
      "error",
      {
        "code": 80,
        "ignoreUrls": true,
        "ignoreComments": true,
        "ignoreStrings": true,
        "ignoreTemplateLiterals": true
      }
    ],
    "new-cap": [
      2,
      {
        "capIsNew": false,
        "newIsCap": true
      }
    ],
    "no-param-reassign": 0,
    "no-shadow": 0,
    "no-tabs": 2,
    "no-underscore-dangle": 0,
    "react/forbid-prop-types": [
      "error",
      {
        "forbid": ["any"]
      }
    ],
    "import/no-extraneous-dependencies": ["error", { "devDependencies": true }],
    "react/jsx-no-bind": [
      "error",
      {
        "ignoreRefs": true,
        "allowArrowFunctions": true,
        "allowBind": false
      }
    ],
    "react/no-unknown-property": [
      2,
      {
        "ignore": ["itemscope", "itemtype", "itemprop"]
      }
    ]
  }
}

我不确定这是否相关,但这里也是我的tsconfig.eslint.json文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "extends": "./tsconfig.json",
  "include": ["./src/**/*.ts", "./src/**/*.tsx", "./src/**/*.js"],
  "exclude": ["node_modules/**", "build/**", "coverage/**"]
}

我怎么才能解决这个问题?

谷歌搜索错误不会出现任何有用的论坛或引发的错误。他们大多数只是声明不使用require在您的文件,而我不是。

EN

回答 7

Stack Overflow用户

发布于 2022-05-07 22:07:24

这种情况在许多最近发布的框架(如Vue.jsNuxt.js )中都会出现,这主要是因为使用了ESM模块(不完全或完全不被旧的Node.js版本所支持)。

最快的方法是使用类似于nvm的东西,在安装它之后,您可以运行:

  • nvm i 16 (v16是撰写文章时最新的LTS )
  • nvm use 16

您将使用完整的ESM支持来运行该项目。您可以通过运行node -v对此进行双重检查。

票数 1
EN

Stack Overflow用户

发布于 2022-09-22 05:42:13

通过将.eslintrc的文件扩展名从js更改为json (使用.eslintrc.js中的ESM格式导出.eslintrc对象不起作用),可以很容易地解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2022-06-11 01:06:50

对于使用eslint-config- For本机社区包的For本机安装程序

我做了接受答案建议的事情,但根文件夹的package.json文件中没有任何"babel-eslint": "^10.0.2",行。

  • 转到node_modules/@react-native-community/eslint-config
  • 编辑package.json,将"babel-eslint": "^10.0.2",更改为"@babel/eslint-parser": "^7.18.2",
  • 编辑文件index.js,将"parser": "babel-eslint",更改为parser: '@babel/eslint-parser',
  • 转到项目和npm i -D @babel/eslint-parser的根文件夹
  • 运行lint命令

对我来说是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69554485

复制
相关文章
Eclipse_插件_03_反编译插件_Eclipse Class Decompiler
此插件比jd-eclipse更加强大,反编译之后不会像jd-eclipse一样出现注释符号。
shirayner
2018/08/10
1.4K0
Eclipse_插件_03_反编译插件_Eclipse Class Decompiler
Java反编译工具JD-GUI以及Eclipse的反编译插件
总之,有时候我们想要阅读代码,但是只有jar包却没有源码,就需要用到反编译工具了。
雨临Lewis
2022/01/11
2.7K0
关于引用Eclipse Paho Android Service时的编译class冲突
按照官方文档: dependencies { implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2' implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.0.2' } 编译时发生冲突: Duplicate class androidx.viewpager.widget.ViewPager$SimpleOnPageChang
devecor
2020/11/05
1.1K0
eclipse配置插件(eclipse安装反编译插件)
最近大一刚学习Java,编译器用的eclipse,实验中又需要画类图,所以用到了这个插件,写出来给各位菜鸟们参考……
全栈程序员站长
2022/07/31
2.7K1
eclipse配置插件(eclipse安装反编译插件)
你干啥的?Lombok
说实话,我英文不太好(不是找借口,真的),但借助金山词霸,大致知道了这段英文的意思:Lombok 是个好类库,可以为 Java 代码添加一些“处理程序”,让其变得更简洁、更优雅。
南风
2019/05/15
6310
你干啥的?Lombok
你干啥的?Lombok
说实话,我英文不太好(不是找借口,真的),但借助金山词霸,大致知道了这段英文的意思:Lombok 是个好类库,可以为 Java 代码添加一些“处理程序”,让其变得更简洁、更优雅。
沉默王二
2019/05/15
4570
Eclipse下个人觉得好用的插件
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/108128.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/20
1.1K0
Eclipse安装JD-Eclipse反编译插件
1、在eclipse的help—》Install New Software...中添加新软件开发,添加它的源: name:jd-eclipse_update_site address:http://j
Java学习123
2018/05/16
2.2K0
Java Decompiler反编译工具
插件名称:Java Bytecode Decompiler或Java Decompiler。
郭顺发
2021/12/17
3.5K0
Java Decompiler反编译工具
Hadoop学习之编译eclipse插件
近期准备開始学习Hadoop1.2.1的源码,感觉最好的方法还是能够在运行Hadoop及hadoop作业时跟踪调试代码的实际运行情况。因为选择的IDE为eclipse,所以准备编译一下hadoop的eclipse插件,以下就直接进入正题。Hadoop的eclipse插件源码位于hadoop-1.2.1/src/contrib/eclipse-plugin/中,直接进入该文件夹,在不做不论什么改动的情况下,在命令行输入ant,运行效果例如以下:
全栈程序员站长
2022/07/08
2.1K0
Hadoop学习之编译eclipse插件
Jad反编译及eclipse反编译插件JadClipse
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
4.2K0
jad Couldn't fully decompile method getIndex
使用jad以及JD-GUI反编译cglib产生的class文件时,发现这两种工具都不能很好的反编译fastclass文件,总会出现一部分汇编代码:
johnhuster的分享
2022/03/29
3800
CleanFlight 在Eclipse中编译通过
参照github上的教程,顺利编译通过,看下图: cf编译通过
孙亖
2018/06/07
9580
7款开源java反编译工具
今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了。
斯文的程序
2019/11/07
5.6K0
7款开源Java反编译工具
今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程。尤其是像.NET、Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。当然,也有一些商业软件,对其程序进行了混淆加密,这样我们就很难用工具反编译了。
全栈程序员站长
2022/09/08
11K0
编译Hadoop 1.2.1 Hadoop-eclipse-plugin插件
个人理解,ant的初衷是打造一个本地化工具,而编译hadoop插件的资源间的依赖超出了这一目标。导致我们在使用ant编译的时候需要手工去修改配置。那么自然少不了设置环境变量、设置classpath、添加依赖、设置主函数、javac、jar清单文件编写、验证、部署等步骤。
星哥玩云
2022/06/29
4160
编译Hadoop 1.2.1 Hadoop-eclipse-plugin插件
Injection for Xcode 高效Xcode编译调试插件
对于iOS开发者来说,XCode有个另人十分难耐的特性——编译时长的问题。也许工作的时候你能够为自己找到一个闲下来喝杯咖啡的正当的借口,然而,多次的调试编译过程足以让你喝上好多杯咖啡了。应该说,Injection是iOS开发者的福音,它在很大程度上优化了XCode的性能,提升了开发者的工作效率。
freesan44
2018/09/05
1.9K0
Injection for Xcode 高效Xcode编译调试插件
java汇编码和反编译插件
① 在Eclipse help菜单 -> install new software -> Add按钮 -> name随意(如bytecode outline) -> Location写http://andrei.gmxhome.de/eclipse/ ② 在中间出现的树形目录中选择你的Eclipse版本对应的bytecode outline插件,打钩,next ... ③ 装完后,重启。 ④ window -> show view -> bytecode,OK了,你打开一个类就能看到字节指令了。
用户4766018
2022/08/19
7010
Hadoop2.6.0的Eclipse插件编译和设置
git clone https://github.com/winghc/hadoop2x-eclipse-plugin.git
星哥玩云
2022/07/04
5280
Hadoop2.6.0的Eclipse插件编译和设置
点击加载更多

相似问题

带有JavaDoc的Eclipse中的Java Decompiler插件

22

为Eclipse Java EE IDE配置JD-Eclipse Java Decompiler插件

17

eclipse插件:在调试终止时获得通知

13

调试Eclipse插件

412

在eclipse中调试List<Class>对象?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文