こんにちは。鈴木商店の若林 (@itigoore01) です。
最近タイトルのようなエラーが発生することがありました。
僕の場合は jest
での単体テストを走らせたときに、それまでは問題なかった上、特に触ってもいないコンポーネントで発生した問題です。
もしかしたらそれ以外のケースでも発生するかもしれないので、対処方法を備忘録として残しておくことにします。
筆者の環境は次のとおりです。
Angular: v11.0.8
VSCode: v1.53.2
Angular Language Service: v11.2.1その他:
@nrwl/nx を使用
対象読者
- VSCodeを使用していて、タイトルのようなエラーが発生して困っている方
対処方法
さっそく対処方法です。
Angular Language Service
(VSCode拡張機能) の設定を変更する
VSCodeの設定画面を開き、「Enable-experimental-ivy-prompt」「Experimental-ivy」のチェックを外します。
ちなみに、また再現してしまうことはありますが、次の node_modules
を再インストールする手順だけでも一応直ります。
ivy
機能を切りたくなければ、エラーが起きるたびに再インストールすれば一時的にエラーは起きなくなります。(僕はそうしています)
node_modules
を再インストールする
プロジェクトの node_modules
を再インストールします。
1 2 3 4 |
# パスは適当に読み替えてください cd ~/path/to/project npm ci |
以上で僕の環境では再現しなくなりました。
原因
Angular Language Service
で最近追加された ivy
機能が原因っぽいです。
最近のAngular Language Service
のアップデートで、「ivyを有効にするか?」 みたいなプロンプトが表示されたので、あまり意識せずに有効にしている人もいるかも知れません。
とはいえ、ivy
機能自体まだexperimental
なので、どんどんバグを踏んで報告してあげたほうが良さそうですよね。
明確な再現方法も、英語力もないので僕は報告できていないですが、これを見た方は報告してあげてください……。