新版webpack升里边去掉了dev-server和dev-client两个文件。
最新的vue里dev-server.js被替换成了webpack-dev-conf.js
因此,在模拟后台数据的时候直接在webpack-dev-conf.js文件中修改
- 第一步、在const portfinder = require(‘portfinder')后添加如下内容
const express = require('express')
const app = express() //请求server
var appData = require('../mock/goods.json') //加载本地数据文件
var apiRoutes = express.Router()
app.use(apiRoutes) //通过路由请求数据
// 或
// 定义本地mock文件,后台数据模拟
// const axios = require('axios');
// const express = require('express')
// const app = express()
// var goodsData = require('../mock/goods.json')//加载本地数据文件
// var apiRoutes = express.Router()
// app.use('/api', apiRoutes)
- 第二步、找到devServer,在里面加上before()方法
devServer: {
clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
],
},
hot: true,
contentBase: false, // since we use CopyWebpackPlugin.
compress: true,
host: HOST || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
? { warnings: false, errors: true }
: false,
publicPath: config.dev.assetsPublicPath,
proxy: config.dev.proxyTable,
quiet: true, // necessary for FriendlyErrorsPlugin
watchOptions: {
poll: config.dev.poll,
},
before(app) {
app.get('/goods', (req, res) => {
res.json(appData)
})
}
}
- 第三步、在项目目录中创建mock文件夹,创建goods.json文件:
{
"status": "0",
"msg": "",
"result": [
{
"productId": "100001",
"productName": "小米6",
"productPrice": "2499",
"productImg": "1.jpg"
},{
"productId": "100002",
"productName": "音箱",
"productPrice": "999",
"productImg": "2.jpg"
},{
"productId": "100003",
"productName": "电脑",
"productPrice": "199",
"productImg": "3.jpg"
}
]
}
-
第四步、在GoodsList.vue文件中:
image.png
注:参考
网友评论