LoginSignup
2
1

More than 3 years have passed since last update.

ローカルではビルドできるのにCI上だとビルドエラーになる事象にハマった話

Posted at

先日、分かってみればしょうもない原因でどハマリしたため、悲しみの覚え書きを投稿します。

結論だけ知りたい人へ

git管理下のファイルをリネームするときはgit mvを使おう。
vscodeの人はgit renameを使うと便利。

事象

リファクタ目的でファイル名、フォルダ名をリネームしたところ、
ローカル環境ではビルドが成功するのに、CI(GitHubActions)上ではビルドに失敗した。

  • ローカルでは動作確認問題なし
  • ローカル、CIともにビルドコマンドはvue-cli-service build --mode production
  • CI上のビルドにて以下のエラーが出た
-  Building for production...
Starting type checking service...
Using 1 worker with 2048MB memory limit
 ERROR  Failed to compile with 33 errors10:53:22 AM

These dependencies were not found:
 ERROR  Build failed with errors.

* @/src/something in ./node_modules/cache-loader/dist/cjs.js??ref--14-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/ts-loader??ref--14-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/index.vue?vue&type=script&lang=ts&
(以降、いろんなファイルで同様のエラーが表示される)

原因

git管理上のファイルをリネームしていなかったこと。
vscodeからリネームをしたところ、一部のファイルはgitにリネームが反映されていなかった。
(実ファイルはリネームできているし、git上にリネームが反映されているファイルもありました。vscodeの問題なのか、作業途中でstashしたとかその辺の影響なのかは切り分けできていません)

実ファイルはすべてリネームされているため、ローカルのビルドは成功します。
しかし、git管理上はリネーム漏れがあるため、CI上で改めてcheckout -> buildとするとビルドエラーになる、という事象でした。

対策

  • git管理下のファイルをリネームするときはgit mvを使おう。
  • vscodeのエクステンションgit renameを使うと便利。
  • git statusをちゃんと見よう。

最後に

ローカルとgitは同じ、という思い込みに気付けず、調査は難航しました。
同僚に相談したところ速攻で解決し、相談って大事だなと改めて思いました。

調査の過程でvueのビルド設定の確認方法(npx vue-cli-service inspect)を知れたのは、ひとつ収穫でした。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1