nuxt.config.js文件

JavaScript015

nuxt.config.js文件,第1张

nuxt.config.js文件用于组织Nuxt.js应用的个性化配置,以便覆盖默认配置。

Nuxt.js允许你在自动生成的vendor.bundle.js文件中添加一些模块,以减少应用bundle的体积。如果你的应用依赖第三方模块,这个配置项是十分实用的。

Nuxtjs里配置全局的css文件、模块、库。(每个页面都会被引入,一般用于公共样式)

如果要使用sass就必须要分别安装node-sass和sass-loader。

在nuxt.config.js中,添加要使用的css资源:

Nuxt.js会自动识别被导入文件的扩展名,之后,webpack会使用对应的预处理器进行处理。前提是你安装了对应的预处理器。

配置Nuxt.js应用是开发模式还是生产模式。

dev属性的值会被nuxt命令覆盖:

在server.js中:

然后可在package.json中添加脚本配置如下:

注意:要运行上面的示例,你需要运行npm install --save-dev cross-env 安装 cross-env。 如果你在非 Windows 环境下开发,你可以不用安装 cross-env,这时需要把 start 脚本中的 cross-env 去掉。

Nuxt.js让你可以配置在客户端和服务端共享的环境变量。

例如(nuxt.config.js):

以上配置我们创建一个baseUrl环境变量,如果应用设定了BASE_URL环境变量,那么baseUrl的值等于BASE_URL的值,否则其值为 http://localhost:3000 。

然后,我们可以通过以下两种方式来使用baseUrl变量:

1.通过process.env.baseUrl

2.通过context.baseUrl

举个例子,我们可以利用它来配置axios的自定义实例。

plugins/axios.js:

然后在页面中,我们可以使用import axios from '~plugins/axios'引入axios模块。

配置Nuxt.js应用生成静态站点的具体方式。

当运行nuxt generate命令或在编码中调用nuxt.generate()时,Nuxt.js会使用generate属性的配置。

借助head属性,Nuxt.js让你可以在nuxt.config.js中配置应用的meta信息。

想了解head属性的可用配置,可以参考vue-meta配置文档。

modules是Nuxt.js扩展,可以扩展它的核心功能并添加无限的集成。

用于设置路径解析的模块目录,例如:webpack resolveLoading, nodeExternal和postcss。配置路径为相对路径options.rootDir

plugins属性使得你可以轻易地为Nuxt.js配置使用Vue.js插件。

例如(nuxt.config.js):

然后我们需要创建plugins/vue-notifications.js文件:

plugins属性配置的所有插件会在Nuxt.js应用初始化之前被加载导入。

每次你需要使用 Vue.use() 时,你需要在 plugins/ 目录下创建相应的插件文件,并在 nuxt.config.js 中的 plugins 配置项中配置插件的路径。

设置Nuxt.js应用的根目录。

该配置项的值会被nuxt命令行指定的路径参数覆盖(例如:nuxt my-app/会将rootDir的值覆盖设置为my-app/目录对应的绝对路径)。

Nuxt.js允许为应用程序内部nuxt.config.js中定义服务器访问主机和端口。

设置Nuxt.js应用的源码目录

用于设置页面切换过渡效果的默认属性值。

默认值:

例如(nuxt.config.js):

transition用于设置页面切换过渡效果。

用于设置布局过渡的默认属性。配置与layout相同

默认:

例如(nuxt.config.js):

全局配置示例css:

vue单页面应用渲染是从服务器获取所需js,在客户端将其解析生成html挂载于

id为app的DOM元素上,这样会存在两大问题。

除此之外,nuxt与vue还有一些其他方面的区别。

下图为关于nuxt的简单概述

vue文件中可直接使用

sass文件如需解析,nuxt.config.js中配置css属性

封装axios,解决每个请求前加baseURL

plugins/axios.js

index.vue

为避免每个页面都引入moment,执行 moment.locale('zh-cn') ,可将其定义为全局方法

icon.png文件存放在static文件夹下,nuxt.config.js中配置head属性

中间件存放于middleware文件夹下,按使用场景可分为全局中间件和单页面中间件

中间件执行流程顺序:

nuxt.config.js ->匹配布局 ->匹配页面

按照index.vue通过 require('mini-toastr') 引入miniToastr,运行程序报错如下

打印miniToastr发现为一Module对象,init挂载在其default属性上

所以修改引入方法为

为什么需要require().default

关于如上介绍,测试关于两种模块的导出方法

方式一:export default

新建test.js文件

vue页面导入

此时 require('~/plugins/con.js') 打印为

方式二:module.exports

此时 require('~/plugins/con.js') 打印为