起首,我们先来看自 Nuxt 创建以来的一些统计数据:
Google Analytics
约 1200 万次页面拜候;约 75 万独立拜候者;拜候者最多的 5 个国度:美国、中国、英国、日本和俄罗斯。GitHub
96 次发布;约 14860 个 star;约 3900 个问题和 PR(97% 已封闭)。NPM
约 1200 万次下载;53 个官方模块(https://www.npmjs.com/org/nuxtjs)。新版本的次要变革:
撑持 Webpack 4光是那一改良就值得专门写一篇文章停止介绍:
Webpack 4 速度十分快;形式、0CJS 和合理的默认值;不再需要 CommonsChunkPlugin;WebAssembly 撑持;引入模块类型以及.mjs 撑持。其他变革:
客户端绑缚包的默认开发东西是默认的 eval,它的速度是最快的。默认情况下启用模块串联(感化域提拔)优化。删除了尝试选项 build.dll。它不太不变,况且 Webpack 4 已经足够快了。迁徙提醒:用户不需要修改项目中的任何一行代码,晋级到 Nuxt 2 后,一切都将奇异般地主动帮你迁徙完毕。
不再需要 vendorsNuxt 2 仍然存在 vendors 块,但会主动处置它,并且效率更高。从那个版本起头,不再利用 CommonsChunkPlugin,所以用户没必要在项目中显式定义 vendors。Nuxt 会主动将核心软件包(vue、vue-router、babel-runtime 等)添加到指定的 Cache Group 中,那有助 Webpack 以最有效的体例拆分代码。
迁徙提醒:从 nuxt.config.js 中删除 vendors。若是你的项目中包罗了 vendors,能够平安地删除它们。若是你是模块做者,能够保留 this.addVendor() 为旧版本供给撑持。下一版本可能会显示弃用警告。
完全控造块拆分Nuxt 测验考试供给开箱即用的最有效的代码拆分功用,不外,如今用户能够通过 build.splitChunks 选项来完全控造代码拆分,并能够选择性地禁用路由的异步块。
严重变动:默认情况下,Nuxt 不再拆散布局块。它们将与主入口点一路加载,就像 Nuxt Core、Plugins、Middleware 和 Store 一样。用户能够通过build.splitChunks.layouts: true 来启用规划拆分。别的,为了更好地控造 Webpack 块拆分,能够利用build.optimization.splitChunks 选项。
严重变动:关于消费版本的构建,不再利用文件名做为块名称的一部门(/_nuxt/pages/foo/bar.[hash].js 酿成了 [hash.js])。用户能够利用build.optimization.splitChunks.name:true 强迫恢复启用文件名称(若是未指定,在 dev 和 --analyze 形式下仍然会启用文件名称)。
严重变动:为了削减异步恳求,Webpack 默认不拆分运行时(manifest)块,并将其移到主块中。用户能够通过build.optimization.runtimeChunk:true 来启用运行时拆分。
留意:Nuxt 的默认设置是以一些更佳理论为根底,并基于现实项目标基准测试停止了优化。建议用户在每次做出更改后利用 nuxt build --analyze 阐发 bundle。
迁徙提醒:连结默认设置。对你的现实项目停止基准测试,然后按照你的需要精心定造设置装备摆设选项。
Vue Loader 15 和 mini-css-extract-plugin**
vue-loader(https://vue-loader.vuejs.org/en/)能够将.vue 文件解析为可运行的 JS/CSS 和 HTML。Vue-Loader 15 利用完全差别的新架构停止了重写,能够将主 Webpack 设置装备摆设中定义的任何规则应用于 *.vue 文件中的语言块。
关于 CSS 提取,利用了一个新的插件 mini-css-extract-plugin,它撑持按需加载 CSS 和 SourceMaps(CSS 拆分),而且是基于 Webpack v4 的新功用(模块类型)而构建。
因为那两个插件都是新的,所以估计在最末发布 2.0.0 版本之前,可能会呈现一些纷歧致。那两个插件已经在差别场景中停止了全面测试,它们表示得十分好!
Nuxt 和 ES module如今用户能够通过 std/esm(https://github.com/standard-things/esm)在 nuxt.config.js 中导入和导出 Middleware 和模块中。std/esm 是一个快速、消费停当、零依赖的软件包,用于在 Node 6+ 中启用 ES 模块。
CLI 改良开发者需要文雅的开发经历来开发超卓的软件,于是 Nuxt 团队从头设想了良多有关 CLI 的工具。
在利用 nuxt dev 时,即便 CLI 显示 Nuxt 已筹办停当,用户仍然可能觉得到构建延迟。那是因为运行了两次 Webpack。一次是为客户端,一次是为 SSR 绑缚,但第二次运行被隐藏起来。如今构建被并行化,同时开发了 WebpackBar(https://github.com/nuxt/webpackbar),能够查看构建进度,还有其他良多功用。
如今,默认情况下隐藏所有调试动静(能够通过设置情况变量 DEBUG = nuxt:* 来启用),同时为构建器和生成器更智能、更好地显示动静。
用户经常要求 Nuxt 撑持测试和 CI(持续集成)情况。Nuxt 2 将主动检测 CI 和测试情况,并切换到 minimalCLI 特殊形式,在该形式下包罗较少的打印动静。
移除 Nuxt 1.0 中弃用的特征移除 context.isServer 和 context.isClient(利用 process.client 和 process.server 取代);移除 build.extend() 中的 options.dev(利用 options.isDev 取代);移除了模块中的 tappable hooks(nuxt.plugin())(利用新的钩子系统);删除了模块的回调(利用异步或返回 Promise)。尝试性的多线程编译器那个特征将在 Webpack 5 中正式发布,不外用户如今能够通过 options.build.cache: true 来启用 cache-loader 和 Babel 缓存,以及通过 options.build.parallel: true 来启用 thread-loader。
SPA 改良Nuxt.js 是 Vue.js 开发人员的通用框架,它既能够用于全局情况(与办事器端衬着一路),也能够用于客户端(单页应用法式,SPA)。Nuxt 从头设想了与 SPA 有关的一些重要方面。
SPA 最重要的组件之一是页面加载指示器。Nuxt 团队对其停止了从头设想,若是呈现任何问题,就会进入错误形态,并在大约 2 秒后自适应地显示在 DOM 中。若是 SPA 应用法式加载足够快,能够制止没必要要的屏幕闪灼。还添加了 aria 标签,帮忙屏幕阅读器和搜刮引擎准确检测启动画面。
出于 SEO 方面的原因以及撑持 HTTP2 推送,SPA 形式利用特殊的 Meta 衬着器将 nuxt.config.js 中定义的所有元标识表记标帜添加到页眉中。同时还为 SPA 形式添加了options.render.bundleRenderer.shouldPrefetch 和options.render.bundleRenderer.shouldPreload。
严重变动:默认情况下禁用 shouldPrefetch。良多用户反响存在没必要要的页面块预取,尤其是在中型项目中。此外,为了便利调试,非消费形式下默认禁用所有没必要要的资本提醒。
create-nuxt-app
create-nuxt-app 是 Nuxt 官方的脚手架东西,用于生成各类模板,如项目启动模板、Express 模板等。有了 create-nuxt-app,用户能够选择与办事器端框架(如 Express、Koa、Adonis 等)集成,或者与 UI 框架(如 Vuetify、Bootstrap、Tailwind 等)集成,或者也能够利用 axios 模块。
如今你能够更快地创建一个 Nuxt 新项目了。
迁徙指南
用户能够通过 yarn add nuxt@^2.0.0 或 npm install nuxt@^2.0.0 停止晋级。下面是完好的迁徙步调指南:
认真阅读发布通知布告;若是利用的是 VCS,请在新分收长进行代码提交和推送;停行所有的 Nuxt 历程;可选:删除所有.nuxt、node_modules、yarn.lock 和 package.lock.json 目次和文件;确保利用的是最新版本的 Node(建议利用 Node 10.x 和 NPM 5 以上版本);在 nuxt.config.js、modules 和 serverMiddleware 中利用 import/export 取代 require;确保没有在 package.json 中显式设置 Webpack 和 Vue 依赖,若是有,请将它们晋级到与 Nuxt 婚配的版本;利用 npm 和 yarn 停止安拆;可选:利用 npm outdated 或 yarn outdated,并小心手动更新所有依赖项;若是利用了 CDN 摆设系统,请确保更新 CI/CD 设置装备摆设,利用.nuxt/dist/client 取代.nuxt/dist。参考链接
https://medium.com/@nuxt_js/nuxt-js-2-0-webpack-4-esm-modules-create-nuxt-app-and-more-6936ce80d94chttps://medium.com/nuxt/nuxt-2-is-coming-oh-yeah-212c1a9e1a67https://github.com/nuxt/nuxt.js/releases/tag/v2.0.0
评论列表