Ani*_*ift 14 javascript node.js npm eslint devops
这是一个激励示例:我正在开发一些代码并想弄清楚出了什么问题,所以我有
function foo() {
console.log("Look its 2016 and I'm still printf debugging");
}
Run Code Online (Sandbox Code Playgroud)
除了……我们的构建过程将 esLint 作为构建系统的一部分运行,并且如果 esLint 失败,设计上甚至会阻止运行其余的构建管道。 error Unexpected console statement no-console
我实际上想要的是设置一个dev
环境,在其中关闭某些规则(或转换为警告),然后设置一个production
打开严格规则的环境。而且我希望能够轻松地在本地切换它,以便我可以在将代码提交到 CI 服务器之前验证我的代码是否有效。
我找不到任何相关的代码片段来实现这一点,这让我很伤心。我的构建环境只是npm
脚本(仅使用 esLint CLI + package.json),但我很乐意从另一个构建环境移植解决方案。
现在,我只能// eslint-disable-line
在本地修改.eslintrc
文件并祈祷我不会意外地将其签入。一定会有更好的办法。
exm*_*axx 11
NODE_ENV
您可以使用.js
eslint config ( eslintrc.js
)版本并根据NODE_ENV
变量对规则进行分支。
在eslintrc.js
:
rules: {
'no-console':
process.env.NODE_ENV === 'production'
? 'error'
: 'warn'
}
Run Code Online (Sandbox Code Playgroud)
中的脚本package.json
:
"scripts": {
"lint": "eslint",
"lint:prod": "NODE_ENV=production eslint"
}
Run Code Online (Sandbox Code Playgroud)
您将使用规则的一个版本,而使用另一个版本的 CI(假设NODE_ENV
您的 CI 设置为production
)。
来自 github 上的相关线程:https : //github.com/eslint/eslint/issues/6460#issuecomment-226967834
看起来我要做的是制作一个dev.eslintrc
或类似的东西,并扩展 main .eslintrc
. 然后我可以使用命令行参数根据需要在两个规则集之间切换。
小智 3
为什么不使用预提交挂钩,在任何提交发生之前检查您的代码。您始终可以使用本地注释或使用 .eslintrc 文件禁用任何您想要的规则。
看看https://github.com/jhurliman/precommit-hook有关更多信息,老实说,我认为所有这些都需要依赖于开发。您的生产不应出现任何 lint。
最后,我会添加一些任务运行程序,例如 grunt 或 gulp,这样您就可以运行 lint、单元测试以及代码所需的任何其他健全性检查。
归档时间: |
|
查看次数: |
4560 次 |
最近记录: |