Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为本地开发创建不同的eslint规则_Javascript_Node.js_Npm_Devops_Eslint - Fatal编程技术网

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

Javascript 为本地开发创建不同的eslint规则,javascript,node.js,npm,devops,eslint,Javascript,Node.js,Npm,Devops,Eslint,这里有一个激励性的例子:我正在开发一些代码,想找出哪里出了问题,所以我 function foo() { console.log("Look its 2016 and I'm still printf debugging"); } 除了。。。我们的构建过程将esLint作为构建系统的一部分来运行,根据设计,如果esLint失败,甚至可以防止运行构建管道的其余部分错误意外控制台语句无控制台 我实际上想要的是建立一个dev环境,其中某些规则被关闭(或转换为警告),然后是一个producti

这里有一个激励性的例子:我正在开发一些代码,想找出哪里出了问题,所以我

function foo() {
    console.log("Look its 2016 and I'm still printf debugging");
}
除了。。。我们的构建过程将esLint作为构建系统的一部分来运行,根据设计,如果esLint失败,甚至可以防止运行构建管道的其余部分<代码>错误意外控制台语句无控制台

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

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


现在,我剩下的要么是
//eslint禁用行
,要么是本地修改
.eslintrc
文件,并祈祷我不会意外地将其检入。一定有更好的方法。

为什么不使用预提交钩子,在提交之前检查代码。如果使用注释(如果是本地的)或使用.eslintrc文件,则始终可以禁用任何规则

查看以了解更多信息。老实说,我认为所有这些都需要依赖于开发。你的产品不应该有任何绒毛


最后,我将添加一些任务运行程序,如grunt或gulp,这样您就可以运行代码所需的lint、单元测试和任何其他健全性检查。

来自github上的相关线程:

看起来我要做的是做一个
dev.eslintrc
或类似的,并扩展主
.eslintrc
。然后我可以根据需要使用命令行参数在两个规则集之间切换。

通过
NODE\u ENV
您可以使用eslint config的
.js
版本(
eslintrc.js
),并基于
NODE\u 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
)。

预提交钩子很难,因为在没有一些cp钩子的情况下,很难将其下推到单独的机器上。git/hooks。我宁愿只添加一些具有.eslintrcdev和.eslintrcprod的shell脚本,并根据需要将其中一个复制到.eslintrc。我不想卷入关于任务执行者的政治讨论。为了避免误解,我想澄清一下:我们正在根据需要使用make+npm+node的任务运行程序。我认为理想情况下我想要做的是能够运行
eslint--env dev…
eslint--dev prod
(现在支持它),但是在我的eslintrc中有一些规则,看起来像这样的
dev/no控制台:['off']
,这是不受支持的。不管是否有人有一个聪明的方法来解决这个问题,我都要看看是否能将这个特性引入到eslint中。