vue/cli2中

/config/dev.env.js

/config/prod.env.js

配置 开发环境名
NODE_ENV: '"development"'
配置 开发环境后台接口地址
BASE_API: '"http://123.57.71.29:8080"'
调用配置好的参数
axios.default.baseURL = process.env.BASE_API

require.context函数接受三个参数

  1. directory {String} -读取文件的路径
  2. useSubdirectories {Boolean} -是否遍历文件的子目录
  3. regExp {RegExp} -匹配文件的正则
/**
参数一 : 文件路径
参数二 : 是否查找子文件
参数三 : 正则校验筛选文件
*/
require.context('./test', false, /.js$/);//赵当前目录下的test文件中所有以.js结尾的文件  不包括子级

require.context函数执行后返回的是一个函数,并且这个函数有3个属性

resolve {Function} -接受一个参数request,request为test文件夹下面匹配文件的相对路径,返回这个匹配文件相对于整个工程的相对路径
keys {Function} -返回匹配成功模块的名字组成的数组 (相对路径和名字 如 ./apis/file.js)
id {String} -执行环境的id,返回的是一个字符串,主要用在module.hot.accept,应该是热加载?(就是返回 request。contenxt的第一个参数)
requireAll('./apis/file.js') //读取文件模块对象
/**
files作为一个函数,也接受一个req参数,这个和resolve方法的req参数是一样的,即匹配的文件名的相对路径,而files函数返回的是一个模块,
 * 如果改模块中导出的是多    requireAll('./apis/file.js').a1 requireAll('./apis/file.js').a2 requireAll('./apis/file.js').a3
 * 如果是单独导出(default) requireAll('./apis/file.js').default
 */
// 集合所有请求接口函数
const moduleFiles = require.context('./', true, /.js$/); //读取
const modules = moduleFiles.keys().reduce((module, modulePath) => { //计算总对象
    if (modulePath !== 'index.js') { //排除自身文件
        let obj = moduleFiles(modulePath) //读取模块对象
        return Object.assign(module, obj) // 合并对象成为新对象
    }
}, {})
export default modules //导出合并好的 api对象
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐