Eslint:如何在 Node.js 中禁用 "unexpected console statement"?
Eslint: How to disable "unexpected console statement" in Node.js?
我将 eslint 与 Sublime Text 3 一起使用,我正在编写 gulpfile.js
。
/*eslint-env node*/
var gulp = require('gulp');
gulp.task('default', function(){
console.log('default task');
});
但是 eslint 一直显示错误:"Error: Unexpected console statement. (no-console)"
我找到了 official document here,但我仍然不知道如何禁用它。
/*eslint-env node*/
var gulp = require('gulp');
/*eslint no-console: 2*/
gulp.task('default', function(){
console.log('default task');
});
也不行。
我的 Sublime Text 3 插件:SublimeLinter 和 SublimeLinter-contrib-eslint。
这是我的 .eslintrc.js
文件:
module.exports = {
"rules": {
"no-console":0,
"indent": [
2,
"tab"
],
"quotes": [
2,
"single"
],
"linebreak-style": [
2,
"unix"
],
"semi": [
2,
"always"
]
},
"env": {
"browser": true,
"node": true
},
"extends": "eslint:recommended"
};
在你的文件目录下创建一个.eslintrc.js,将以下内容放入其中:
module.exports = {
rules: {
'no-console': 'off',
},
};
您应该更新 eslint 配置文件以永久修复此问题。否则,您可以暂时启用或禁用 eslint 检查控制台,如下所示
/* eslint-disable no-console */
console.log(someThing);
/* eslint-enable no-console */
如果你在本地项目下安装eslint,你应该有一个目录/node_modules/eslint/conf/,并且在该目录下有一个文件eslint.json。您可以编辑文件并使用值 "off" 修改 "no-console" 条目(尽管也支持 0 值):
"rules": {
"no-alert": "off",
"no-array-constructor": "off",
"no-bitwise": "off",
"no-caller": "off",
"no-case-declarations": "error",
"no-catch-shadow": "off",
"no-class-assign": "error",
"no-cond-assign": "error",
"no-confusing-arrow": "off",
"no-console": "off",
....
希望这篇"configuration"能帮到你。
我正在使用 Ember.js,它生成一个名为 .eslintrc.js
的文件。添加 "no-console": 0
到规则对象为我完成了这项工作。更新后的文件如下所示:
module.exports = {
root: true,
parserOptions: {
ecmaVersion: 6,
sourceType: 'module'
},
extends: 'eslint:recommended',
env: {
browser: true
},
rules: {
"no-console": 0
}
};
更好的选择是根据节点环境有条件地显示 console.log 和调试器语句。
rules: {
// allow console and debugger in development
'no-console': process.env.NODE_ENV === 'production' ? 2 : 0,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
},
如果你只想禁用一次规则,你想看看。
您可以通过仅禁用一行的规则来改进这一点:
... 在当前行:
console.log(someThing); /* eslint-disable-line no-console */
... 或在下一行:
/* eslint-disable-next-line no-console */
console.log(someThing);
您应该添加一条规则并添加您的环境:
{
"rules": {
"no-console": "off"
},
"env": {
"browser": true
}
}
您可以添加其他环境。
如果您只想禁用一行规则,则以下内容适用于 VSCode 中的 ESLint。
要禁用下一行:
// eslint-disable-next-line no-console
console.log('hello world');
要禁用当前行:
console.log('hello world'); // eslint-disable-line no-console
在 package.json 中,您会找到 eslintConfig
行。您的 'rules' 行可以像这样进入:
"eslintConfig": {
...
"extends": [
"eslint:recommended"
],
"rules": {
"no-console": "off"
},
...
},
对于 vue-cli 3 打开 package.json
并在 eslintConfig
部分下将 no-console
放在 rules
下并重新启动开发服务器(npm run serve
或 yarn serve
)
...
"eslintConfig": {
...
"rules": {
"no-console": "off"
},
...
2018 年 10 月,
就这样:
// tslint:disable-next-line:no-console
其他人回答
// eslint-disable-next-line no-console
无效!
在我的 vue
项目中,我这样解决了这个问题:
vim package.json
...
"rules": {
"no-console": "off"
},
...
ps : package.json is a configfile in the vue project dir, finally the content shown like this:
{
"name": "metadata-front",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.18.0",
"vue": "^2.5.17",
"vue-router": "^3.0.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.0.4",
"@vue/cli-plugin-eslint": "^3.0.4",
"@vue/cli-service": "^3.0.4",
"babel-eslint": "^10.0.1",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0-0",
"vue-template-compiler": "^2.5.17"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"rules": {
"no-console": "off"
},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
如果您在根据文档配置 package.json 后仍然遇到问题(如果您选择使用 package.json 来跟踪而不是单独的配置文件):
"rules": {
"no-console": "off"
},
它仍然不适合你,别忘了你需要返回命令行并再次执行 npm install。 :)
使用Window对象
window.console.log("..")
或者不关闭 'no-console',您可以允许。在 .eslintrc.js 文件中放入
rules: {
"no-console": [
"warn",
{ "allow": ["clear", "info", "error", "dir", "trace", "log"] }
]
}
这将允许您执行 console.log
和 console.clear
等操作而不会引发错误。
在“规则”中,
“no-console”:[假,“日志”,“错误”]
我的 2 美分贡献:
除了删除控制台警告(如上所示),最好从 PROD 环境中删除您的日志(出于安全原因)。
我发现最好的方法是将其添加到 nuxt.config.js
build: {
terser: {
terserOptions: {
compress: {
//this removes console.log from production environment
drop_console: true
}
}
}
}
工作原理:Nuxt 已经使用 terser 作为缩小器。此配置将强制 terser 在压缩期间 ignore/remove 所有控制台日志命令。
确保 flutter 项目所在文件夹的名称。没有空格。那是我的错误
我将 eslint 与 Sublime Text 3 一起使用,我正在编写 gulpfile.js
。
/*eslint-env node*/
var gulp = require('gulp');
gulp.task('default', function(){
console.log('default task');
});
但是 eslint 一直显示错误:"Error: Unexpected console statement. (no-console)"
我找到了 official document here,但我仍然不知道如何禁用它。
/*eslint-env node*/
var gulp = require('gulp');
/*eslint no-console: 2*/
gulp.task('default', function(){
console.log('default task');
});
也不行。
我的 Sublime Text 3 插件:SublimeLinter 和 SublimeLinter-contrib-eslint。
这是我的 .eslintrc.js
文件:
module.exports = {
"rules": {
"no-console":0,
"indent": [
2,
"tab"
],
"quotes": [
2,
"single"
],
"linebreak-style": [
2,
"unix"
],
"semi": [
2,
"always"
]
},
"env": {
"browser": true,
"node": true
},
"extends": "eslint:recommended"
};
在你的文件目录下创建一个.eslintrc.js,将以下内容放入其中:
module.exports = {
rules: {
'no-console': 'off',
},
};
您应该更新 eslint 配置文件以永久修复此问题。否则,您可以暂时启用或禁用 eslint 检查控制台,如下所示
/* eslint-disable no-console */
console.log(someThing);
/* eslint-enable no-console */
如果你在本地项目下安装eslint,你应该有一个目录/node_modules/eslint/conf/,并且在该目录下有一个文件eslint.json。您可以编辑文件并使用值 "off" 修改 "no-console" 条目(尽管也支持 0 值):
"rules": {
"no-alert": "off",
"no-array-constructor": "off",
"no-bitwise": "off",
"no-caller": "off",
"no-case-declarations": "error",
"no-catch-shadow": "off",
"no-class-assign": "error",
"no-cond-assign": "error",
"no-confusing-arrow": "off",
"no-console": "off",
....
希望这篇"configuration"能帮到你。
我正在使用 Ember.js,它生成一个名为 .eslintrc.js
的文件。添加 "no-console": 0
到规则对象为我完成了这项工作。更新后的文件如下所示:
module.exports = {
root: true,
parserOptions: {
ecmaVersion: 6,
sourceType: 'module'
},
extends: 'eslint:recommended',
env: {
browser: true
},
rules: {
"no-console": 0
}
};
更好的选择是根据节点环境有条件地显示 console.log 和调试器语句。
rules: {
// allow console and debugger in development
'no-console': process.env.NODE_ENV === 'production' ? 2 : 0,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
},
如果你只想禁用一次规则,你想看看
您可以通过仅禁用一行的规则来改进这一点:
... 在当前行:
console.log(someThing); /* eslint-disable-line no-console */
... 或在下一行:
/* eslint-disable-next-line no-console */
console.log(someThing);
您应该添加一条规则并添加您的环境:
{
"rules": {
"no-console": "off"
},
"env": {
"browser": true
}
}
您可以添加其他环境。
如果您只想禁用一行规则,则以下内容适用于 VSCode 中的 ESLint。
要禁用下一行:
// eslint-disable-next-line no-console
console.log('hello world');
要禁用当前行:
console.log('hello world'); // eslint-disable-line no-console
在 package.json 中,您会找到 eslintConfig
行。您的 'rules' 行可以像这样进入:
"eslintConfig": {
...
"extends": [
"eslint:recommended"
],
"rules": {
"no-console": "off"
},
...
},
对于 vue-cli 3 打开 package.json
并在 eslintConfig
部分下将 no-console
放在 rules
下并重新启动开发服务器(npm run serve
或 yarn serve
)
...
"eslintConfig": {
...
"rules": {
"no-console": "off"
},
...
2018 年 10 月,
就这样:
// tslint:disable-next-line:no-console
其他人回答
// eslint-disable-next-line no-console
无效!
在我的 vue
项目中,我这样解决了这个问题:
vim package.json
...
"rules": {
"no-console": "off"
},
...
ps : package.json is a configfile in the vue project dir, finally the content shown like this:
{
"name": "metadata-front",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.18.0",
"vue": "^2.5.17",
"vue-router": "^3.0.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "^3.0.4",
"@vue/cli-plugin-eslint": "^3.0.4",
"@vue/cli-service": "^3.0.4",
"babel-eslint": "^10.0.1",
"eslint": "^5.8.0",
"eslint-plugin-vue": "^5.0.0-0",
"vue-template-compiler": "^2.5.17"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"eslint:recommended"
],
"rules": {
"no-console": "off"
},
"parserOptions": {
"parser": "babel-eslint"
}
},
"postcss": {
"plugins": {
"autoprefixer": {}
}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
如果您在根据文档配置 package.json 后仍然遇到问题(如果您选择使用 package.json 来跟踪而不是单独的配置文件):
"rules": {
"no-console": "off"
},
它仍然不适合你,别忘了你需要返回命令行并再次执行 npm install。 :)
使用Window对象
window.console.log("..")
或者不关闭 'no-console',您可以允许。在 .eslintrc.js 文件中放入
rules: {
"no-console": [
"warn",
{ "allow": ["clear", "info", "error", "dir", "trace", "log"] }
]
}
这将允许您执行 console.log
和 console.clear
等操作而不会引发错误。
在“规则”中, “no-console”:[假,“日志”,“错误”]
我的 2 美分贡献:
除了删除控制台警告(如上所示),最好从 PROD 环境中删除您的日志(出于安全原因)。 我发现最好的方法是将其添加到 nuxt.config.js
build: {
terser: {
terserOptions: {
compress: {
//this removes console.log from production environment
drop_console: true
}
}
}
}
工作原理:Nuxt 已经使用 terser 作为缩小器。此配置将强制 terser 在压缩期间 ignore/remove 所有控制台日志命令。
确保 flutter 项目所在文件夹的名称。没有空格。那是我的错误