【问题标题】:How to install ESlint globally?如何全局安装 ESlint?
【发布时间】:2018-08-20 00:04:04
【问题描述】:

我正在尝试安装 ESlint,以便将它与 Sublime Text 2 一起用于我所有的本地项目。 Configuration documentation 对全局安装很不清楚:

注意:eslint --init 用于在每个项目的基础上设置和配置 ESLint,并将在运行它的目录中执行 ESLint 及其插件的本地安装。如果您更喜欢使用 ESLint 的全局安装,则配置中使用的任何插件也必须全局安装。

我不明白他们的意思。我使用了eslint --init,它在node_modules 本地安装了ESlint,以及所有插件。没有任何关于全局安装插件的解释。我怎么做?另外,如果eslint --init 还是安装了本地的,我该如何使用全局 ESlint 安装?这太令人困惑了。

【问题讨论】:

    标签: npm sublimetext eslint


    【解决方案1】:

    您可以在项目中(本地)或全局安装 Node 模块。要切换到全局,您可以使用the -g flag,如下所示:

    npm install -g eslint
    

    然后看看它是否在没有 Sublime Text 的情况下工作(-v 标志以查看 eslint 的版本):

    eslint -v
    

    查看它的安装位置(假设 MacOS/Linux):

    which eslint
    

    然后看看它是否在 Sublime Text 中工作(您可能需要先重新启动 Sublime)。如果它不起作用,请确保在 eslint 包设置中路径正确。

    【讨论】:

    • 我这样做了,但是eslint --init 需要一些额外的插件,例如如果我打算使用 React 的话,React 插件。如何让eslint --init全局安装所有插件?
    • @RoboRobok eslint --init 将软件包安装在项目的 package.json 文件中。像 React 这样的包是你项目的一部分,而不是你可以在你的计算机上全局安装的“应用程序”。但是,您可以通过在 dependenciesdevDependencies 对象中列出它们来区分 package.json 在您的项目中是什么类型的包。
    • 我希望在全局范围内使用它们以进行 linting。
    • 根据eslint docseslint --init 只在本地安装它们。遗憾的是,您需要自己在全球范围内安装它们。使eslint --init 安装全局包的功能似乎在this github issue 中打开。
    【解决方案2】:
    1. 全局安装 eslint:npm install -g eslint

      在项目文件夹中安装 eslint:npm install eslint --save-dev

    2. 添加package.json这个脚本:"eslint": "eslint --ignore-path .gitignore ."

    3. 创建一个名为.eslintrc 的文件并插入:

      {
        "env": {
          "browser": true,
          "node": true
        },
        "globals": {
          "chrome": true
        },
        "rules": {
          "no-console": 0,
          "no-empty": [1, { "allowEmptyCatch": true }]
        },
        "extends": "eslint:recommended"
      }
      

      就个人而言,我将此文件保存在我的 js 文件夹中

    4. 转到node_modules/.bin

    5. 运行:eslint --initnpm run eslint nameOfYourFile

    【讨论】:

    【解决方案3】:

    假设你已经为你的编辑器安装了一个 eslint 插件,如果你有 npm install -g eslint,那么你可以为特定环境安装附加组件,例如 npm install eslint-config-airbnb eslint-plugin-react eslint-plugin-jsx-a11y eslint-plugin-import -g(这是对纯 JS 和 React 的支持),您也可以通过这种方式添加对 nodejs 的支持,在工作文件夹中制作 .eslintrc 文件,如下所示

    {
        "extends":  ["airbnb" , "eslint:recommended"],
        "env": {
        "node": false,
        "es6": true,
        "browser": true
        },
        "rules": {
            "semi":"error",
            "no-unused-vars": "off",
            "func-names":"off",
            "indent":"off",
            "no-else-return":"off",
            "prefer-arrow-callback":"off",
            "no-undef":"off",
            "no-use-before-define":"off",
            "comma-dangle":"off",
            "eol-last":"off",
            "no-trailing-spaces":"off",
            "linebreak-style":"off",
            "no-console":"off",
            "no-restricted-globals":"off",
            "object-shorthand":"off",
            "no-shadow":"off",
            "no-debugger":"off",
            "prefer-const":"off",
            "no-multiple-empty-lines":"off"
        }
    }
    

    如果您需要节点支持,则在 .eslintrc 的 env 部分中将节点设置为“true”,并使用 next 全局安装 eslint-node 插件 npm i eslint-plugin-node -g。 然后在 .eslintrc 的扩展部分添加"plugin:node/recommended"。 通过这种方式,您将在您机器上每个具有 .eslintrc 文件的项目中获得 eslint 支持。在 .eslintrc 规则部分中设置您需要的规则。 就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 2018-06-29
      • 2021-01-30
      • 2020-03-01
      • 1970-01-01
      • 2017-12-03
      相关资源
      最近更新 更多