最近、Nuxt.jsでComposition-apiを試し始めています。
Composition-api周りの記事を読んでいると、「babel-preset-vca-jsx」というライブラリを併用することで、簡単にTSX(JSX)も利用できるとのこと。
vuejs/composition-api luwanquan/babel-preset-vca-jsx
早速試してみたのですが、「Object(…) is not a function」というエラーが発生し、TSXで記述したコンポーネントが読み込めないという状況に遭遇してしまいました。
エラーの原因:「@vue/composition-api」とのバージョン不整合
原因は単純で、「@vue/composition-api」の最新バージョンに、「babel-preset-vca-jsx」が対応していないことでした。
エラー遭遇時、それぞれのバージョンは以下だったのですが、
- @vue/composition-api:1.0.0-beta.1
- babel-preset-vca-jsx:0.3.5
「@vue/composition-api:1.0.0-beta.1」で、破壊的な変更が入っていたみたいですね。
詳細は以下のPRに記載されています。
https://github.com/luwanquan/babel-preset-vca-jsx/pull/12
今回は、「@vue/composition-api」のバージョンを「0.6.7」に下げることで解決できました。
もうPRが上がっているので、バージョン対応もすぐだとは思います。 応急処置として参考になれば嬉しいです。