javascript - 为本地开发创建不同的 eslint 规则

标签 javascript node.js npm devops eslint

这是一个激励人心的例子:我正在开发一些代码,想弄清楚哪里出了问题,所以我有

function foo() {
    console.log("Look its 2016 and I'm still printf debugging");
}

除了……我们的构建过程将 esLint 作为构建系统的一部分运行,如果 esLint 失败,我们的设计甚至会阻止运行构建管道的其余部分。 错误意外的控制台语句 no-console

我真正想要的是设置一个 dev 环境,其中某些规则被关闭(或转换为警告),然后是一个具有严格规则的 production 环境打开。我希望能够在本地轻松切换它,以便在将代码提交到 CI 服务器之前验证我的代码是否正常工作。

我找不到任何相关的代码片段来实现这一点,这让我很难过。我的构建环境只是 npm 脚本(仅使用 esLint CLI + package.json),但我很乐意从另一个构建环境移植解决方案。

现在,我只剩下 //eslint-disable-line 或在本地修改 .eslintrc 文件并祈祷我永远不会意外地检查它.一定有更好的方法。

最佳答案

通过 NODE_ENV

分支您的规则

您可以使用 .js 版本的 eslint 配置 (eslintrc.js) 并根据 NODE_ENV 变量分支您的规则。

eslintrc.js 中:

rules: {
 
  'no-console':
    process.env.NODE_ENV === 'production'
      ? 'error'
      : 'warn'

}

package.json 中的脚本:

"scripts": {
  "lint": "eslint",
  "lint:prod": "NODE_ENV=production eslint"
}

您将使用一个版本的规则,您的 CI 将使用另一个版本(假设您的 CI 上的 NODE_ENV 设置为 production)。

关于javascript - 为本地开发创建不同的 eslint 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37892618/

相关文章:

angular - Angular 更新后 npm install 由于对等依赖冲突而失败

javascript - 如何通过传递参数属性来更改 polymer 元素模板

javascript - IE7 不支持本地存储

javascript - 如何编写服务于大多数本地文件但将某些文件重新路由到另一个域的 Node 快速应用程序?

c# - 如何在 node.js 中使用 C# 类?

Node.js - 在 Windows 上安装约翰尼五号库

javascript - 如何将 "save"写入 Javascript 函数?

下拉菜单的 Javascript (wp_nav_menu) 不工作

javascript - 使用tablesasjson调用函数后如何更改变量的值?

node.js - npm WARN install 无法安装可选依赖项 : Unsupported