個人用メモです。
Dockerが存在しないファイルをコンパイルしようとして、見つからないというコンパイルエラーを吐くときの対処法。
app | WARNING in ./Internal_Article/index.js
app | Module build failed: Error: ENOENT: no such file or directory, open './Internal_Article/index.js'
app | Error: ENOENT: no such file or directory, open './InternalArticle/InternalArticle.vue'
app | ℹ 「wdm」: Failed to compile.
コンパイル対象のファイルが見つからないというエラー。
##要因1
ファイル名が間違っている。
#####対処法> ファイル名を見直す。
##要因2
削除したファイル(やディレクトリ)の情報がDockerに反映されていない、またはdockerがキャッシュを使っていて、古い情報に基づいてコンパイルしようとしている。
#####対処法> Dockerを再起動する
####要因2の補足 今回の原因は要因2のパターンだった。**本来、dockerコンテナはコンテナのボリュームとマウントしているので、ファイルは同期している**。
なので、ローカルでファイルを削除すれば、docker側も削除されるはずだが、その同期がうまく行っていない。
考えられる要因としては、Dockerの機能でベータ版機能がデフォルトでONになっているが、これによって同期がうまくいかないことが発生する。
現在は、(1)Enable cloud experience と (2) Use gRPC FUSE for file sharingの2つがONになっている。
これをOFFにすれば予期せぬエラーが発生するリスクが減る。