tslintによると、console.logの呼び出しは許可されていません-これを許可するにはどうすればよいですか?


101

私はtypescriptでcreate-react-appを使い始めました

create-react-app my-app --scripts-version=react-scripts-ts

また、デフォルトのtslint.json構成ではconsole.log()は許可されていません。

(今のところ)console.logを有効にするにはどうすればよいですか?

このドキュメントは https://palantir.github.io/tslint/rules/no-console/にあります。しかし、彼らはこの行をどこに置くべきかについては言いません:

    "no-console": [true, "log", "error"]

私はこのtslint.json構成ファイルの構文を検索して見つけたので、これを試しました:

"rules": {
    "no-console": [true, "warning"]
}

単なる警告となるログメッセージを取得しようとしました。しかし、それはうまくいきませんでした。

私が持っているいくつかのconsole.log()行をコメントアウトしましたが、将来これを実行できるようにしたいと考えています。

回答:


198

エラーメッセージが1度だけ表示// tslint:disable-next-line:no-consoleconsole.logれるようにするには、呼び出しの直前に行を追加します。

ルールを完全に無効にしたい場合は、次のコードをtslint.json(おそらくルートフォルダーに)追加します。

{
    "rules": {
        "no-console": false
    }
}

6
何が起こったのかはわかりませんが、「コンソールなし」になりました。falseは機能しません。回避策// tslint:disable:no-consoleはファイルの先頭に置くことです。
PatS

10
「no-console」:falseは私にとっては機能しますが、それを有効にするには「npm start」を再起動する必要があります。
jlb

2
"no-console": falseでも、私にとっては機能しませんnpm run start
エリックフルマー

18
@EricFulmerはそれを「jsRules」ノードに配置しました。"jsRules":{"no-console":false}、
18

エラーがjsRulesなくなるyarn start前に、ルールを追加して、やり直しました。それらのどれがそれをしたのか分かりません。
バイロンウォール

27

javascriptとtypescriptの混合コードベースを使用してここに来る人のために。

jsRules、JavaScriptファイルのjslintsルールオブジェクトで「コンソールなし」オプションを定義する必要がある場合があります。つまり、javascriptとtypescriptには別々のルールオブジェクトがあります。

//tslint.json

{
  "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], //Example... 
  "rules": {
    "no-console": false //Disable for typescript
  },
  "jsRules": {
    "no-console": false //Disable for javascript
  }
}

しかし-このことの目的は何ですか?
ロベルト・トマス

jsRules、またはコンソールなし?
Lee Brindley、

コンソールなし-コンソールメッセージが製品コードに属していないことを警告するためだけにあるようです(私は調べました)。そのため、envが生成されないときはいつでも疑わしいルールになります
robertotomás19年

私はあなたの主張をある程度理解しています。考慮すべきことの1つは、コンソールはJavaScript言語の一部ではなく、通常JavaScriptエンジンに実装されているということですが、それは要点です-それはJavaScript言語の一部ではなく、存在するかどうかに関係なく、コードに依存関係を焼き付けています。 。そうは言っても、このルールの使用法がわかります。
Lee Brindley、

@robertotomás、このルールは、コードにconsole.logメッセージを含めないというベストプラクティスに基づいています。量産コードにはこれがあってはいけないので、これはあなたの準備ができていない製品を知ることができます。2つのtslint構成があり、1つは許可され、もう1つは許可されません。私が持っているlogger.info呼び出しという機能console.log(ラッパーそうは)私は簡単にアプリケーション全体のログを有効または無効にすることができます。これがベストプラクティスであると言っているのではなく、私が行ったものです。また、github.com/krakenjs/beaver- loggerなどの別のロガーとの統合が容易になります。
PatS

8

以下をあなたに追加してください tslint.json

{
   "rules": {
      "no-console": {
         "severity": "warning",
      } 
   }
}

6

これは、コンソールなしのルール(またはそのほかのルール)を定義するための正しい構文ですが、エラーではなく警告のみです(明らかにオプションを必要なものに変更します)。

"no-console": {
    "severity": "warning",
    "options": [
        "log",
        "error",
        "debug",
        "info",
        "time",
        "timeEnd",
        "trace"
    ]
},

これは警告として完全に機能します。ところで、これはtslintのドキュメントには記載されていません。
nelson6e65

1

typeScriptバージョン3では、tslint.jsonを以下のような主要なルールで更新します。

"no-console": [
    true,
    "debug",
    "time",
    "timeEnd",
    "trace"
],

このように、デフォルトのtslintに「info」がリストに含まれている場合は、debug、time、timeEnd、traceを使用しないように指定するだけで削除できます。



1

私がtslintの「コンソールなし」ルールを処理する方法は、開発フェーズで便利で隔離されているファイルごとにあります。

最初のconsole.log();を使用する必要があるとすぐに。Visual Studio Codeは、追加するオプションを示しています。

// tslint:disable-next-line:no-console

console.log();

したがって、ここでは「-next-line」を削除するだけで、このコマンドはファイル全体をカバーします。

// tslint:disable:no-console

console.log();

アプリ全体の機能を無効にする代替手段として役立つことを願っています。

RON


0

ドキュメントによると:https : //eslint.org/docs/user-guide/getting-started#configuration

  • 「オフ」または0-ルールをオフにします
  • 「警告」または1-警告としてルールをオンにします(終了コードには影響しません)
  • 「エラー」または2-エラーとしてルールをオンにします(終了コードは1になります)

ちなみに、あなたの正しい設定は

{
  "rules": {
    "no-console": false
  }
}


0
  {
    "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
    "linterOptions": {
        "exclude": [
            "config/**/*.js",
            "node_modules/**/*.ts",
            "coverage/lcov-report/*.js"
        ]
    },
    "rules": {
        "no-console": false
    },
    "jsRules": {
        "no-console": false
    }
 }

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.