Tempo de execução (opcional)

O tempo de execução typeScript é necessário para arquivos não compilados pelo Webpack, como o arquivo nuxt.config, módulos locais e serverMiddlewares.

Nuxt.js criou um wrapper para o tempo de execução TypeScript em um pacote dedicado @nuxt/typescript-runtime. O wrapper é um binário chamado nuxt-ts que registra ts-node nos bastidores antes de ser executado.

Instalação

yarn add @nuxt/typescript-runtime
npm install @nuxt/typescript-runtime

Note-se que este pacote é instalado como dependency e não devDependency, como @nuxt/typescript-build, por causa que o @nuxt/typescript-runtime é necessário em produção.

Uso

Tudo que você precisa fazer é atualizar o seu arquivo package.json:

"scripts": {
  "dev": "nuxt-ts",
  "build": "nuxt-ts build",
  "generate": "nuxt-ts generate",
  "start": "nuxt-ts start"
},
"dependencies": {
  "@nuxt/typescript-runtime": "latest",
  "nuxt": "2.x"
},
"devDependencies": {
  "@nuxt/types": "2.x",
  "@nuxt/typescript-build": "latest"
}

nuxt-ts também funciona se você estiver utilizando a versão edge do Nuxt.js (nuxt-edge).

Agora você pode usar TypeScript para o arquivo nuxt.config, módulos locais e serverMiddlewares.

@nuxt/typescript-runtime não suporta uso programaticamente (já que extende @nuxt/cli).

Usuários avançados podem tentar adicionar o seguinte código no começo de seu servidor (veja a fonte)

import { register } from 'ts-node'

register({
  project: 'tsconfig.json',
  compilerOptions: {
    module: 'commonjs'
  },
  transpileOnly: true
})

Porém, isso é não recomendado ou suportado.