webpack新版本下配置mockjs

webpack新版本中间件发生了变化,before与after已经不能使用,代替的onBeforeSetupMiddleware与onAfterSetupMiddleware也要废弃,合二为一成为了setupMiddlewares,setupMiddlewares代替了before与after,所以mockjs在配置时也发生了变化。
下面是mockjs部分,主要就是devServer.app.get变成了middlewares.unshift

const fs = require('fs')
const path = require('path')
const Mock = require('mockjs')
/**
 * @param {string} filePath
 */
function getJsonFile(filePath) {
	let json = fs.readFileSync(path.resolve(__dirname, filePath), 'utf-8')
	return json
}

//重点部分,middlewares就是新增加的,原本只有devServer。
module.exports = function (middlewares, devServer) {
	//middlewares.unshift就是之前的before,middlewares.push是after
	middlewares.unshift({
		name: 'mock',
		// `path` 是可选的
		path: '/user/userInfo',
		middleware: (req, res) => {
			let json = getJsonFile('./userinfo.json') //mock数据的样式,自己新建。
			res.send(Mock.mock(json))
		},
	})
	//return别忘了
	return middlewares
}

vue.config.js部分变成了setupMiddlewares

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    setupMiddlewares: require('./src/mock/index.js'),
  },
})

新版本之前

const fs = require('fs')
const path = require('path')
const Mock = require('mockjs')
/**
 * @param {string} filePath
 */
function getJsonFile(filePath) {
	let json = fs.readFileSync(path.resolve(__dirname, filePath), 'utf-8')
	return json
}

module.exports = function (devServer) {
	devServer.app.get('/user/userInfo', (req, res) => {
		let json = getJsonFile('./userinfo.json')
		res.send(Mock.mock(json))
	})
}

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  onBeforeSetupMiddleware: {
    setupMiddlewares: require('./src/mock/index.js'),
  },
})

目前的新版本还是可以用这个的,但是文档显示该配置项已弃用,以支持 devServer.setupMiddlewares

{
  "id": "@id()",
  "username": "@cname()",
  "date": "@date()",
  "avatar": "@image('200x200','red','#fff','avatar')",
  "description": "@paragraph()",
  "ip": "@ip()",
  "email": "@email()"
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值