Nuxt.js配置环境变量

一、客户端

1、安装 cross-env 依赖

npm i cross-env -D

2、创建 .env.env.development 环境文件

.env 内容如下:

BASE_URL=http://localhost:3000/api

.env.development 内容如下:

BASE_URL=http://localhost:4000/api

3、修改 package.json 启动脚本(两端全配)

{
  "scripts": {
    "dev": "cross-env MODE=development nuxt -e development"
  }
}

4、nuxt.config.js 配置修改

const envConfig = require('dotenv').config({
  path: `.env${process.env.MODE ? `.${process.env.MODE}` : ''}`
});

export default {
  server: {
    port: 4000
  },
  env: {
    ...process.env,
    ...envConfig.parsed
  },
  // ...
}

注意:dotenv是集成好的,不用单独安装

5、在 axios 中使用

import axios from "axios";

const instance = axios.create({
  baseURL: process.env.BASE_URL,
  timeout: 60000,
});

二、服务端

1、安装 commander 依赖

npm i commander -S

package.json 修改同上

2、在入口文件(index.jsapp.js)绑定到全局

// 绑定全局变量
const { Command } = require('commander');
const program = new Command();
program.version('1.0.0');
program
  .option('-e, --env <env>', 'environment - e.g. test development production')
  .option('-p, --port <port>', 'port - e.g. 3000');
program.parse();
global.env = program.opts().env;

3、创建配置文件

├─ config  
    ├─ development.js
    ├─ index.js
    └─ production.js
├─ index.js 

development.js 内容如下:

module.exports = {
  BASE_URL: '/api'
}

production.js 内容如下:

module.exports = {
  BASE_URL: '/'
}

index.js 内容如下:

const { defaultsDeep } = require("lodash");

const defaultConfig = {
  SITE_NAME: "测试",
};

const envConfig = require("./" + global.env + ".js");

module.exports = defaultsDeep(defaultConfig, envConfig);

4、使用

const config = require('../config');

console.log(config.BASE_URL);
PS:写作不易,如要转裁,请标明转载出处。
%{ comment.page.total }条评论

猜你想看

微信小程序:前端开发宝典

最近文章
工具操作
  • 内容截图
  • 全屏
登录
注册
回顶部