webpack手动搭建vue项目(五)—— 引入mockjs

6 篇文章 0 订阅
3 篇文章 0 订阅

在我们实际开发中,以前需要等待后台开发完成才能联调,现在只需先协商好数据结构字段等,然后引入mockjs,就可以先一步开发,另外mockjs在单元测试的时候也很重要。

1.安装mockjs

>npm install mockjs --save-dev

2.添加mock目录

|---src/
|    |---index.js
|
|---mock/
|    |---demo //根据项目分目录
|    |    |---demomock.js
|    |---index.js
|

3.增加mock/index.js文件

/** 此处引入各个模块的mockdata */
require('./demo/demomock.js')

增加demo/demomock.js 

import apiPath from '@/api/api-path'
// 引入mockjs
const Mock = require('mockjs')

const getMockData = {
    info(options) {
        return {
            "code": 0,
            "data": {
                "userName": "132",
                "userCode": "123"
            },
            "message": "\u6210\u529F"
        }
    }
}
const postMockData = {
    code(options) {
        let argObj = JSON.parse(options.body)
        return {
            "code": 0,
            "data": Mock.mock({
                "deptCodeSet|1-20": [...new Set([
                    () => {
                        return argObj.node + Mock.mock('@string("upper", 3)')
                    }
                ])]
            }),
            "message": "\u6210\u529F"
        }
    }
    
}

/* Mock.mock( url, get , 返回的数据) */
Mock.mock(RegExp(url + ".*"), 'get', getMockData.info)

/* Mock.mock( url, post , 返回的数据) */
Mock.mock(url, 'post', postMockData.code)

注意此处api-path文件为项目接口请求路径配置文件 

4.配置webpack全局环境变量

webpack.dev.js

const webpack = require('webpack')
const merge = require('webpack-merge')
const common = require('./webpack.base.js')
const path = require('path')

module.exports = merge(common, {
    devtool: 'source-map',
    devServer: {
        contentBase: path.join(__dirname, '../dist'),
        historyApiFallback: true,
        host: '0.0.0.0',  // 一般设置为0.0.0.0 可以供localhost访问和供别人ip访问
        port: 8015,  // 端口
        open: true, // 自动打开浏览器
        compress: true,
        proxy: {
            '/matchName': {
				target: 'http://www.baidu.com',  // 代理目标地址
                pathRewrite: {'^/matchName': '/matchName'}
            }
		}
	},
	plugins: [
		new webpack.DefinePlugin({
			'process.env.Mock': true  // 和后台联调时候此处需要设置为false
		})
	]
})

webpack.sit.js

new webpack.DefinePlugin({
			'process.env.Mock': false
		})

webpack.prd.js

new webpack.DefinePlugin({
			'process.env.Mock': false
		})

5.在入口文件引入mock

src/index.js

//import '@babel/polyfill'  // webpack4.x
//import 'babel-polyfill'  // webpack3.x

// 引入mockjs
process.env.Mock && require('../mock/index.js')


到此小伙伴们就可以开心的去编写代码了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值