最新のnuxt.jsを使ってtypescript-runtime上でデコレーターを使うと以下のようなエラーが出ることがある。
(universalモードの場合)
ParseError: Support for the experimental syntax 'decorators-legacy' isn't currently enabled (3:1)
...
at p (node_modules/jiti/dist/jiti.js:1:9442)
...
これは、内部でjitiというトランスパイラが勝手に呼ばれていることが原因である。
解決法
typescript-runtimeの場合はts-nodeによって自動的にトランスパイルされるので、jitiは無用の長物である。
したがって、jitiを使わないように設定する必要がある。
具体的には、nuxt.config.tsにcreateRequire: 'native'
を追加すればよい。
(ドキュメントには書いてないが実際動作するようである。(nuxt@2.15.0にて確認))
nuxt.config.ts
module.exports = {
createRequire: 'native',
// ...
}: