先日、サイトのデザインをちょっぴり変更してコミットしたら、Azure DevOpsのビルドでエラーになってしまいました。
こういう時って、焦りますよねぇ。

いつもの調子でローカルの動作確認を終えて、コミット。

後はしばらく待てばビルドとリリースの通知メールが飛んできて、実機確認という感じなのですが、ビルドのメールは来てもリリースのメールが一向にやってきません。

遅いなぁ、と思いつつビルド通知をよく見てみたら、失敗してるじゃん...

慌てて管理画面からログを覗いてみると、

(中略)

2018-12-03T10:51:18.7891444Z   npm ERR! Cannot read property 'match' of undefined
2018-12-03T10:51:18.7896432Z   
2018-12-03T10:51:18.7904752Z   npm ERR! A complete log of this run can be found in:
2018-12-03T10:51:18.7935092Z   npm ERR!     C:\npm\cache\_logs\2018-12-03T10_51_18_726Z-debug.log
2018-12-03T10:51:18.7941665Z D:\a\1\s\NekoniDotnet.Web\NekoniDotnet.Web.csproj(82,5): error MSB3073: The command "npm install" exited with code 1.
2018-12-03T10:51:18.8428455Z ##[error]Error: C:\Program Files\dotnet\dotnet.exe failed with return code: 1
2018-12-03T10:51:18.8439906Z ##[error]Dotnet command failed with non-zero exit code on the following projects : D:\a\1\s\NekoniDotnet.Web\NekoniDotnet.Web.csproj
2018-12-03T10:51:18.8474162Z ##[section]Finishing: Publish

npm installがこけてます。

えー。

Google先生にお伺いをしてみましたが、「node_modulesフォルダを消してやりなおせ」という...

Azure DevOpsはビルドの際、新しくディレクトリを作って処理しているのでこれは当てはまりません。

package.jsonは確かにいじった(dependenciesからdevDependenciesへ移動とか)んですが、ローカルでは特に問題ありませんでした。
yarnで普通にインストール出来てましたし。

ん、yarn

そうです、ローカルでは普段yarnを使っているのでした。

DevOpsのビルドと同様、npm installを実行してみたら、ローカルでも同じエラーが発生しました。やーん
ちょっと考えて、package-lock.jsonを削除してnpm installを実行してみたら、正常終了しました。いyarn

エラーの原因はpackage.jsonpackage-lock.jsonの内容が合っていないせい、ということなんでしょうねぇ。

DevOpsのビルドでyarnを使うように設定する方法ってあるのかしら...。
とりあえず、npm installもチェックしてからコミットするようにしなければ...。


このトラブルシューティングが誰かの参考になれば幸いです。
こんなドジっ子居ないかna...