分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

webpack 4 + mockjs

发布时间:2023-09-06 01:51责任编辑:赖小花关键词:jswebpack

一、创建项目目录

二、添加开发依赖( html-webpack-plugin、webpack、webpack-cli、webpack-dev-server、webpack-api-mocker)

如下所示位于package.json文件中

..."devDependencies": { ???"html-webpack-plugin": "^3.2.0", ???"webpack": "^4.6.0", ???"webpack-cli": "^2.0.15", ???"webpack-dev-server": "^3.1.3", ???"webpack-api-mocker": "^1.4.3" ?},...

使用npm install 或者 yarn install (推荐,原因你懂的)

三、创建 webpack.config.js 文件,编写相关配置

  

 1 const path = require(‘path‘); 2 const HtmlWebpackPlugin = require(‘html-webpack-plugin‘); 3 const apiMocker = require(‘webpack-api-mocker‘); 4 ?5 module.exports = { 6 ????mode: ‘development‘, //当前环境 7 ????entry: { //程序的启动入口 8 ????????app: ‘./src/index.js‘ 9 ????},10 ????devServer: {11 ????????/****************此处星星多,注意看此处****************************/12 ????????//利用webpack-dev-server 的before 方法调用webpack-api-mocker13 ????????// path.resolve(‘./mocker/index.js‘) 中的‘./mocker/index.js‘为mock文件的相对路径14 ????????/***************以上只是个人的浅显理解罢了(有不同理解请交流)******************/15 ????????before(app) {16 ????????????apiMocker(app, path.resolve(‘./mocker/index.js‘), {17 ????????????????// ‘GET /api/users/list‘: ‘http://localhost:3000‘,18 ????????????????// ‘GET /api/userinfo/:id‘: ‘http://localhost:3000‘,19 ????????????})20 ????????}21 ????},22 ????output: { //配置文件输出路径23 ????????filename: ‘[name].bundle.js‘,24 ????????path: path.resolve(__dirname, ‘dist‘)25 ????},26 ????plugins: [ //利用模板文件生成.html27 ????????new HtmlWebpackPlugin({28 ????????????title: ‘webpack+react‘,29 ????????????template: "./src/entry.ejs",30 ????????????filename: "./index.html",31 ????????}),32 ????]33 };

话不多说直接上‘./mocker/index.js’文件

 1 module.exports = { 2 ????[`GET /api/user`]: (req, res) => { 3 ????????console.log(‘---->‘, req.params); 4 ????????return res.json({ 5 ????????????id: 1, 6 ????????????username: ‘kenny‘, 7 ????????????sex: 6 8 ????????}); 9 ????}10 }

附录1.

  webpack.config.js中的entry.ejs文件

  

 1 <!DOCTYPE html> 2 <html lang="en"> 3 ?4 <head> 5 ????<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 6 ????<!--看这里,看这里,请看我这里--> 7 ????<title> 8 ????????<%= htmlWebpackPlugin.options.title %> 9 ????</title>10 ????<!-- 如果不这这样写 html-webpack-plugin 中的title是不生效的哦-->11 ????<link rel="stylesheet" href="/favicon.png" type="text/css" />12 </head>13 14 <body>15 ????<!-- <div id="root"></div> -->16 ????Visit :/mocker/index.js to customize the API Try it?17 ????<hr>18 ????<div>name:19 ????????<span id="name"></span>20 ????</div>21 ????<div>age:22 ????????<span id="age"></span>23 ????</div>24 </body>25 26 </html>

  webpack.config.js 配置文件中的 entry下app对应值的index.js文件

 1 fetch(‘/api/user‘, { 2 ????????‘Accept‘: ‘application/json‘, 3 ????????‘Content-Type‘: ‘application/x-www-form-urlencoded‘, 4 ????}) 5 ????.then((response) => response.json()) 6 ????.then(data => { 7 ????????console.log(‘data:‘, data); 8 ????????document.getElementById(‘name‘).innerHTML = data.username; 9 ????????document.getElementById(‘age‘).innerHTML = data.sex;10 ????})

OK!接下来npm start 或者 yarn install 运行下试试吧。

效果图如下:

思维重构:以上方式多个mock文件时不就需要改动webpack.config.js文件?这种事情我是绝不允许的。各位看客请看:

  解决方法:编写webpack.mocker.js文件为所有mock文件的总成,启动时自动包装mock(话不多说直接上代码)

1 const mock = {};2 3 require(‘fs‘).readdirSync(require(‘path‘).join(__dirname + ‘/mocker‘)).forEach(function (file) {4 ????Object.assign(mock, require(‘./mocker/‘ + file))5 });6 module.exports = mock;

webpack 4 + mockjs

原文地址:https://www.cnblogs.com/xiqinfanqie/p/8972258.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved