Nuxt.js实战和配置详解

2020-06-12 21:26:56易采站长站整理
nuxt.config.js
中:


module.exports = {
env: {
baseUrl: process.env.BASE_URL || 'http://localhost:3000'
}
}

但如果node端和客户端需要使用同一个环境变量时(后面讲到API鉴权时会使用同一个SECRET变量),就需要同时在

nuxt.config.js
.env
维护这个字段,比较麻烦,我们更希望环境变量只需要在一个地方维护,所以为了解决这个问题,我找到了
@nuxtjs/dotenv
这个依赖,它使得nuxt的客户端也可以直接使用
.env
,达到了我们的预期。

安装:


npm i @nuxtjs/dotenv

客户端也是通过

process.env.XXX
来使用,不再举例啦。

这样,我们通过

dotenv
@nuxtjs/dotenv
这两个包,就可以统一管理开发环境中的变量啦。

另外,

@nuxtjs/dotenv
允许打包时指定其他的env文件。比如,开发时我们使用的是
.env
,但我们打包的线上版本想用其他的环境变量,此时可以指定build时用另一份文件如
/.env.prod
,只需在
nuxt.config.js
指定:


module.exports = {
modules: [
['@nuxtjs/dotenv', { filename: '.env.prod' }] // 指定打包时使用的dotenv
],
}

@nuxtjs/toast模块

toast可以说是很常用的功能,一般的UI框架都会有这个功能。但如果你的站点没有使用UI框架,而alert又太丑,不妨引入该模块:


npm install @nuxtjs/toast

然后在

nuxt.config.js
中引入


module.exports = {
modules: [
'@nuxtjs/toast',
['@nuxtjs/dotenv', { filename: '.env.prod' }] // 指定打包时使用的dotenv
],
toast: {// toast模块的配置
position: 'top-center',
duration: 2000
}
}

这样,nuxt就会在全局注册

$toast
方法供你使用,非常方便:


this.$toast.error('服务器开小差啦~~')
this.$toast.error('请求成功~~')

API鉴权

对于某些敏感的服务,我们可能需要对API进行鉴权,防止被人轻易盗用我们node端的API,因此我们需要做一个API的鉴权机制。常见的方案有jwt,可以参考一下阮老师的介绍: 《JSON Web Token 入门教程》 。如果场景比较简单,可以自行设计一下,这里提供一个思路: