質問: webpackでES6構文を用いたJavascriptのコードを処理するためにbabel-loaderを利用しています。 Github babel-loaderにあるREADME.mdの通りに設定し、問題なく動いていることを確認できていますが、下記の設定のうち、`exclude`を指定する必要が何故あるのかがわかりません。 ``` module: { rules: [ { test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { presets: ['env'] } } } ] } ``` 感覚的には、`node_module`内に置かれているJavascriptのコードもJavascriptで書かれているのだから、`exclude`を指定しなくても問題がないように思うのですが、この設定がないと正常に動作しないのは、何故なのでしょうか。
回答: 結論から言いますと、トランスパイルするサードパーティのpolyfillやモジュールよっては実行時にエラーになる可能性のあるものがあるからです。 こちらのQiitaの記事が参考になります webpackでbabel際はnode_modulesをexcludeし忘れるべからず また、同じ作者の方が`exclude`を忘れた際にエラーがでるケースを再現したアプリケーションを公開してくれています。詳しく知りたければこちらも参考になるかと思われます。