何が起きていますか?
Windowsでフロントのビルドを行うと頻繁に下記エラーが発生する
$ yarn clean && npm-run-all build-prod:* && yarn rev-update
$ npm-run-all -p clean:*
$ node ./tasks/javascripts/clean
$ rimraf ./xxx ../xxx/
2 js files deleted
$ cross-env NODE_ENV=production webpack -p --config ./webpack.config.production.js
# 問題のエラー
Error: EPERM: operation not permitted, open 'C:\xxx'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ERROR: "build-prod:js" exited with 1.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
エラー文では権限がないと表示されるが、ファイルがロックされていることが原因である。
(該当のファイルを権限がある状態で手動で削除したり編集しようとしてもできない)
対処方法
ファイルをロックしている原因となっているプロセスを終了することで一時対応とする。
プロセスを特定する
- Control + R で
resmon
よりリソースモニターを開く
- ハンドルの検索欄に原因となるファイルパスを入力する(上の例だと
C:\xxx
) - 1分ほどするとプロセスが特定されるので該当するプロセスをタスクマネージャーからプロセスを終了させる
- 再度ビルドして成功しているか確認する
備考
- Docker for WindowsをRestartしても
com.docker.backend.exe
は再起動されない - もしかしたらDocker for Windowsのバグなのかもしれない com.docker.backend.exe is locking random files in latest stable release #5624