NoErrorsPlugin
ドキュメントを読んだ後。Webpackで `NoErrorsPlugin`を使用するのはいつですか?
このプラグインのコンパイル中にエラーが発生すると、発光フェーズ(および記録フェーズ)がスキップされるため、エラーを含むエミッションが発生しません。
まだ分かりません。それの使い方?
私はsyntax error
を作ったが、NoErrorsPlugin
を有効にする前に何も変わっていないようだ。
NoErrorsPlugin
ドキュメントを読んだ後。Webpackで `NoErrorsPlugin`を使用するのはいつですか?
このプラグインのコンパイル中にエラーが発生すると、発光フェーズ(および記録フェーズ)がスキップされるため、エラーを含むエミッションが発生しません。
まだ分かりません。それの使い方?
私はsyntax error
を作ったが、NoErrorsPlugin
を有効にする前に何も変わっていないようだ。
私はNoErrorsPlugin
がwebpackビルドプロセスで失敗したと考えています。
このプラグインを使用するシナリオは1つあります。プロジェクトがeslint/eslint-loaderを使用している場合、ESLintの警告はビルドに失敗します。しかしバンドルは放出されます。
NoErrorsPluginはWebpackがバンドルに何も出力できないようにします。したがって、ESLintの警告でさえビルドに失敗します。 eslint-loaderにどのようなエラー設定が使用されても問題ありません。
参考: https://github.com/MoOx/eslint-loader#gotchas
だから我々は何のエラービルドを維持しないために、生産ENVでNoErrorsPluginを使用することができます。
私は答えを読んでいましたが、まだそれを取得していません。ここに私が見つけたものがあります。
webpack.NoErrorsPlugin()はエラーがある場合に再ロードしないようにリロード機能 を伝える任意のプラグインです。エラーは単に コンソールに表示され、ページはリロードされません。このプラグイン が有効になっておらず、エラーがある場合は、死亡の赤い画面がスローされます。
このに関するWebPACKのドキュメントはまばらなままなので、のは、ソースコードを見てみましょうhere
からコピー、https://github.com/webpack/webpack/tree/master/lib/NoErrorsPlugin.js:
let deprecationReported = false;
class NoErrorsPlugin {
\t apply(compiler) {
\t \t compiler.plugin("should-emit", (compilation) => {
\t \t \t if(!deprecationReported) {
\t \t \t \t compilation.warnings.push("webpack: Using NoErrorsPlugin is deprecated.\n" +
\t \t \t \t \t "Use NoEmitOnErrorsPlugin instead.\n");
\t \t \t \t deprecationReported = true;
\t \t \t }
\t \t \t if(compilation.errors.length > 0)
\t \t \t \t return false;
\t \t });
\t \t compiler.plugin("compilation", (compilation) => {
\t \t \t compilation.plugin("should-record",() => {
\t \t \t \t if(compilation.errors.length > 0)
\t \t \t \t \t return false;
\t \t \t });
\t \t });
\t }
}
module.exports = NoErrorsPlugin;
は今のところ非推奨の側面を無視します。このコードは、https://webpack.js.org/api/pluginsに記載されているwebpackプラグインです。これは、イベントフックshould-emit
とcompilation
を使用しています。これについては、https://webpack.js.org/api/plugins/compiler/#event-hooksで説明しています。私はshould-record
フックを見つけることができませんでしたが、これは約https://webpack.js.org/api/plugins/compilation/#record-compilation-records-のようです。
エラーがある場合、プラグインはターゲットコードの放出と「コンパイルに関する情報の保存」を抑制します。これをReactアプリケーションで確認しました。ウェブパック設定でプラグインを切り替えて、出力バンドルのタイムスタンプを監視しています。
廃止予定について:同じGitHubディレクトリには、「NoErrorPlugin.js」のように見える「NoEmitOnErrorsPlugin.js」もありますが、廃止予定はありません。したがって、コードの排出を抑制したい場合は、新しいプラグインを使用する必要があります。
このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 14339101) – Dmitry
あなたの提案をありがとう!私は答えの不可欠な部分を追加しました。 –