解析错误关键字导入是保留的(SublimeLinter-contrib-eslint)

ped*_*uis 45 javascript parsing sublimetext eslint

我有一个eslint的问题,它给了我[解析错误关键字导入是保留]这只发生在sublime,在原子编辑器工作得很好.我有意见

.eslintrc.js

module.exports = {
    "extends": "airbnb",
    "plugins": [
        "react"
    ]
};
Run Code Online (Sandbox Code Playgroud)

的package.json

{
  "name": "paint",
  "version": "0.0.0",
  "description": "paint on the browser",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "paint",
    "javascript"
  ],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "browserify": "^11.2.0",
    "eslint": "^2.2.0",
    "eslint-config-airbnb": "^2.1.1",
    "eslint-plugin-react": "^3.11.2",
    "gulp-babel": "^5.2.1",
    "gulp-clean": "^0.3.1",
    "gulp-stylus": "^2.2.0",
    "vinyl-source-stream": "^1.1.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

Ima*_*adi 105

将其添加到.eslintrc的根目录中

"parser": "babel-eslint"
Run Code Online (Sandbox Code Playgroud)

  • 截至 2021 年 7 月,{ "parser": "@babel/eslint-parser" } (9认同)
  • 这对我也有用,谢谢.如果它可以帮助任何人,我的整个.eslint文件是`{"parser":"babel-eslint"}` (8认同)
  • 但是为什么添加 babel-eslint 会起作用呢?根据我的经验,仅将 parseOptions/sourceType 设置为“module”是不够的。 (6认同)
  • 无需更改解析器.做`"parserOptions":{"sourceType":"module"}`就足够了 (3认同)
  • 当 ecmaVersion < 2015 时,不支持 sourceType 'module'。可能还需要添加 `"ecmaVersion": 6`。 (3认同)

小智 29

解决"关键字导入已保留"错误的eslint选项是parserOptions.sourceType.将其设置为"module"允许使用import关键字.

.eslintrc

{
    "parserOptions": {
        "sourceType": "module"
    }
}
Run Code Online (Sandbox Code Playgroud)

文档: https ://eslint.org/docs/user-guide/configuring#specifying-parser-options

  • 是的,但我还必须在 `parserOptions` 下添加 `"ecmaVersion": "latest"`。 (8认同)
  • 此外,虽然我不使用 babel,但需要 `npm install babel-eslint --save-dev` 和 `parser: 'babel-eslint'` 来消除“导入被保留”错误。这是[不是一个好的解决方案](https://github.com/eslint/eslint/issues/11189#issuecomment-446646882),而是一个解决方法[目前由eslint推荐](https://github.com/eslint/ eslint/issues/11486)。 (2认同)

Man*_*ddy 16

花了 30 分钟 - 尝试了所有解决方案,但效果不佳,所以分享这个。

即使在此时 - 2020 年 4 月,也可以在new react app和 中看到该问题Visual Code

  1. .eslintrc.js在根文件夹中创建一个文件(在package.json,或在/src/目录旁边)
  2. 将以下内容粘贴到 .eslintrc.js
  3. 重启你的编辑器,比如 VS Code。
  4. 现在我可以看到真正的错误,而不是那些虚假的导入/导出错误。

.eslintrc.js 文件内容:

module.exports = {
  env: {
    commonjs: true,
    node: true,
    browser: true,
    es6: true,
    jest: true,
  },
  extends: ["eslint:recommended", "plugin:react/recommended"],
  globals: {},
  parser: "babel-eslint",
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
    },
    ecmaVersion: 2018,
    sourceType: "module",
  },
  plugins: ["react", "import", "react-hooks"],
  ignorePatterns: ["node_modules/"],
  rules: {},
  settings: {
    react: {
      version: "latest", // "detect" automatically picks the version you have installed.
    },
  },
};
Run Code Online (Sandbox Code Playgroud)

希望有帮助。


小智 9

不确定,但尝试将文件重命名为.eslintrc并使用

{
  "extends": "airbnb",
  "plugins": ["react"]
};
Run Code Online (Sandbox Code Playgroud)

还要确保您已安装所需的软件包。 github.com/airbnb/javascript

  • 奇怪的是,“.eslintrc.js”到“.eslintrc”为我修复了它,很奇怪。谢谢! (2认同)

ped*_*uis 8

问题是我在全局和本地安装了eslint,导致SublimeLinter-contrib-eslint出现不一致.我全局卸载了eslint,SublimeLinter正在运行.


Cri*_*par 8

当前得票最高的答案有效。但是,它不再处于维护状态,新建议的方法是使用 mono 存储库中的版本。

安装

$ npm install eslint @babel/core @babel/eslint-parser --save-dev
# or
$ yarn add eslint @babel/core @babel/eslint-parser -D
Run Code Online (Sandbox Code Playgroud)

.eslintrc.js

module.exports = {
  parser: "@babel/eslint-parser",
};
Run Code Online (Sandbox Code Playgroud)

参考


Jul*_*oux 7

关闭 VS 代码并重新打开它对我有用...