Nuxt3 中文课程《实战全栈开发简书》限时优惠

概述

减少与Nuxt 3的差异,减轻迁移到Nuxt 3的负担。
如果你正在开始一个全新的Nuxt 3项目,请跳过本节并前往Nuxt 3安装
Nuxt Bridge提供与Nuxt 3相同的功能(文档),但有一些限制,特别是useAsyncDatauseFetch组合式函数不可用。请阅读本页面的其余内容以获取详细信息。

Bridge是一个向前兼容层,通过安装和启用一个Nuxt模块,可以让你体验到许多新的Nuxt 3功能。

使用Nuxt Bridge,你可以确保你的项目(几乎)已经准备好迁移到Nuxt 3,并且可以逐步进行迁移。

第一步

升级Nuxt 2

确保你的开发服务器(nuxt dev)没有在运行,删除任何包锁定文件(package-lock.jsonyarn.lock),并安装最新的Nuxt 2版本:

package.json
- "nuxt": "^2.16.3"
+ "nuxt": "^2.17.0"

然后,重新安装你的依赖项:

yarn install
安装完成后,请确保开发和生产构建都正常工作,然后再继续。

安装Nuxt Bridge

@nuxt/bridge-edge作为开发依赖项进行安装:

yarn add --dev @nuxt/bridge@npm:@nuxt/bridge-edge

更新nuxt.config

请确保在你的配置文件中避免使用任何CommonJS语法,如module.exportsrequirerequire.resolve。它将很快被弃用和不受支持。

你可以使用静态import、动态import()export default来代替。还可以使用TypeScript,通过将文件重命名为nuxt.config.ts,这也是可能和推荐的。

nuxt.config.ts
import { defineNuxtConfig } from '@nuxt/bridge'

export default defineNuxtConfig({
  bridge: false
})

更新命令

nuxt命令现在应该改为nuxt2命令。

{
  "scripts": {
-   "dev": "nuxt",
+   "dev": "nuxt2",
-   "build": "nuxt build",
+   "build": "nuxt2 build",
-   "start": "nuxt start",
+   "start": "nuxt2 start"
  }
}

尝试在这里运行一次nuxt2。你会发现应用程序正常工作。

(如果'bridge'设置为false,则你的应用程序将像以前一样运行,不需要任何更改。)

升级步骤

使用Nuxt Bridge,可以逐步进行迁移到Nuxt 3。 下面的升级步骤不需要一次完成。

从CommonJS迁移到ESM

Nuxt 3原生支持TypeScript和ECMAScript模块。请查看原生ES模块获取更多信息和升级方法。