Runtime (optional)

TypeScript runtime is needed for files not compiled by Webpack, such as nuxt.config file, local modules and serverMiddlewares.

Nuxt.js has created a TypeScript runtime wrapper under a dedicated package @nuxt/typescript-runtime. The wrapper is a binary named nuxt-ts that registers ts-node behind the scenes before running.


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

Note that this package is installed as dependency and not devDependency like @nuxt/typescript-build, cause @nuxt/typescript-runtime is needed for production.


All you need to do is update your package.json file:

"scripts": {
  "dev": "nuxt",
  "build": "nuxt build",
  "generate": "nuxt generate",
  "start": "nuxt start"
"dependencies": {
  "@nuxt/typescript-runtime": "latest",
  "nuxt": "latest"
"devDependencies": {
  "@nuxt/types": "latest",
  "@nuxt/typescript-build": "latest"

You can now use TypeScript for nuxt.config file, local modules and serverMiddlewares.

@nuxt/typescript-runtime does not support programmatic usage (as it extends @nuxt/cli).

Advanced users might try adding the following code to your server entrypoint (see source):

import { register } from 'ts-node'

  project: 'tsconfig.json',
  compilerOptions: {
    module: 'commonjs'
  transpileOnly: true

However, this is not recommended or supported.