• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

webpack新版本下配置mockjs

武飞扬头像
qq_39330914
帮助1

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()"
}

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiabibh
系列文章
更多 icon
同类精品
更多 icon
继续加载