Nuxt.js v2.9がリリースされました
Nuxt v2.9.0 is out 🥳
— Nuxt.js (@nuxt_js) August 20, 2019
- Typescript support now externalised (https://t.co/AlvY55s0cC)
- Vue Meta upgraded to v2.0
- 10+ bug fixes 🐞
- 10+ new features 🚀https://t.co/vEfQoUWh8l pic.twitter.com/qwmSsEfkxJ
TSの対応方法がそれまでと大きく変わっているので、以前の記事からの差分をのせていこうと思います。
オフィシャルの手順は以下になります。
Migration from Nuxt 2.8 | Nuxt TypeScript
Runtime
前述の移行手順とは順序が異なりますが、以前の記事でnuxt.config.ts
を使っているため、Runtimeを先にインストールします。
$ yarn add @nuxt/typescript-runtime
NuxtのTS回りのNPMがいくつかに分解されました。
そのうち、@nuxt/typescript-runtime
はNode環境でTSを処理するためのものです。
具体的にはnuxt.config
やserverMiddlewares
でTSを使いたいときに必要になります。
ちなみに@nuxt/typescript-runtime
はProduction環境(NODE_ENV=production)でも必要になるので、dependencies
に追加する必要があります。
(nuxt-ts start
で使用するので)
また一連のnuxt
コマンドをnuxt-ts
にしてあげる必要があります。
"private": true,
"scripts": {
- "dev": "nuxt",
- "build": "nuxt build",
- "start": "nuxt start",
- "generate": "nuxt generate",
+ "dev": "nuxt-ts",
+ "build": "nuxt-ts build",
+ "start": "nuxt-ts start",
+ "generate": "nuxt-ts generate",
},
一周回ってv2.5に戻った感じですねw
@nuxt/typescript-build
のinstall
nuxt build
でTSを扱うためのものが@nuxt/typescript-build
です。
@nuxt/typescript
は@nuxt/typescript-build
に含まれるようになったので直接の依存は不要になります。
$ yarn remove @nuxt/typescript
$ yarn add -D @nuxt/typescript-build
@nuxt/typescript-build
はnuxt build
などで使うだけなのでRuntimeとは違い、devDependencies
として追加します。
@nuxt/typescript
がRuntimeとに分離されて使いやすくなった感じですね。
またnuxt.config.ts
内のConfigurationの型定義が@nuxt/types
からExportされるようになりました。
-import NuxtConfiguration from '@nuxt/config'
+import {Configuration} from '@nuxt/types'
-const nuxtConfig: NuxtConfiguration = {
+const nuxtConfig: Configuration = {
+ buildModules: ['@nuxt/typescript-build'],
...
}
module.exports = nuxtConfig
またv2.9で追加されたbuildModulesに@nuxt/typescript-build
を指定しています。
buildModules
にすることでbuildのみ(generateも)で使用するmoduleをdevDependencies
に指定できるようになりました。
tsconfig.json
の更新
tsconfig.json
のtypes
に@nuxt/vue-app
を指定していましたが、@nuxt/vue-app
はなくなったので代わりに@nuxt/types
を使う必要があります。
},
"types": [
"@types/node",
- "@nuxt/vue-app"
+ "@nuxt/types"
]
}
}
@nuxt/types
が@nuxt/vue-app
と@nuxt/config
とを置き換える形ですね。