1.安装插件
npm install --save-dev cross-env
npm install @nuxtjs/axios
2.根目录下创建.env.js
module.exports ={
/*测试环境1*/
test1:{
NODE_ENV: 'dev',
ENV_API:'ip地址1',
},
/*测试环境2*/
test2:{
NODE_ENV: 'dev',
ENV_API:'ip地址2'
},
/*正式环境*/
prod:{
NODE_ENV: 'prod',
ENV_API:'正式环境地址',
},
/*预发布环境*/
pre:{
NODE_ENV: 'prod',
ENV_API:'预发布环境地址',
}
}
3…package.json配置运行命令
scripts:{
"dev:test1":"cross-env NODE_ENV=test1 nuxt",
"dev:test2":"cross-env NODE_ENV=test2 nuxt",
"build:pre":"cross-ev NODE_ENV=pre nuxt build",
"build:prod":"cross-ev NODE_ENV=prod nuxt build",
}
4.在nuxt.config.js配置
const env = require('./env');
env:{
baseUrl:env[process.env.NODE_ENV].ENV_API
},
modules:['@nuxtjs/axios'],
axios:{
//开启代理
proxy: true,
//最多重发三次
retry: { retries: 3 },
//是否是可信任
withCredentials: true
} ,
proxy:{
'/api':{
target:env[process.env.NODE_ENV].ENV_API,
changeOrigin:true,
}
},
build:{
vendor: ["axios"],//防止重复打包
}
5.使用
process.env.baseUrl
第二种方式
1.plugins/baseURL.js
export const baseURL = ()=>{
let baseUrl =''
if (process.env.environment === 'development') {
baseUrl = 'xxx'
} else if (process.env.environment === 'production') {
baseUrl = 'xxxx'
}else if(process.env.environment === 'test'){
baseUrl = 'x'xxx
}
return baseUrl;
}
2.package.json
"scripts": {
"dev": "cross-env environment=development nuxt",
"test": "cross-env environment=test nuxt",
"build": "nuxt build",
"start": "cross-env NODE_ENV=production node server/index.js",
"generate:dev": "cross-env environment=development nuxt generate",
"generate:test": "cross-env environment=test nuxt generate",
"generate:prod": "cross-env environment=production nuxt generate"
},
3.nuxt.config.js配置
env: {
environment: process.env.environment
},
4.组件或者js使用
import {baseURL} from '@/plugins/baseURL'
console.log(baseURL())