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.
Installation
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.
Usage
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'
register({
project: 'tsconfig.json',
compilerOptions: {
module: 'commonjs'
},
transpileOnly: true
})
However, this is not recommended or supported.