带你使用webpack快速构建web项目的方法


Posted in Javascript onNovember 12, 2020

使用webpack构建web项目以及热部署插件的使用,按以下步骤,能帮助你快速构建和理解~
详细学习还得靠官方文档!

一,基础构建部分

大前提!你得先安装了Node.js此处不赘述。

1,创建一个文件夹

带你使用webpack快速构建web项目的方法

2,在当前文件夹子下打开命令行工具

带你使用webpack快速构建web项目的方法

3,项目初始化(创建package.json文件)

npm init -y

带你使用webpack快速构建web项目的方法

4,安装依赖

版本搭配如下:

"devDependencies": {
  "webpack": "^4.17.1",
  "webpack-cli": "^3.3.9",
  "webpack-dev-server": "^3.8.2",
 }

复制粘贴到【命令行工具】回车,安装依赖以上依赖,会自动在package.json写入上述依赖。

npm install webpack@^4.17.1 webpack-cli@^3.3.9 webpack-dev-server@^3.8.2 --save-dev

显示安装完成:

带你使用webpack快速构建web项目的方法

5,补充一个依赖-插件:

用途:如果没有此插件需要我们手动给index.html文件引入 bundle.js。使用此插件我们将会自动在打包的时候创建index.html,且无须关心bundle.js的文件路径。

复制粘贴到【命令行工具】回车

npm install html-webpack-plugin --save-dev

插件如何配置使用,html-webpack-plugin官方说明文档

此时查看文件夹内容如下:

带你使用webpack快速构建web项目的方法

6,补充文件结构:

带你使用webpack快速构建web项目的方法

7,补充webpack.config.js的内容:

webpack官方说明文档整理出来给你后续自己补:
1,webpack的基础配置
2,webpack-dev-server的官方说明文档
3,html-webpack-plugin官方说明文档

// webpack.config.js
const path = require('path');
const htmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
  entry: './src/main.js',//定义入口文件
  output: {
    filename: 'bundle.js',//定义输出文件名称
    path: path.resolve(__dirname, 'dist')//定义输出文件路径
  },
  devServer: {//配置webpack-dev-server(开发环境用的热部署)
    contentBase: "./dist",//定义默认打开路径,会自动寻找该路径下的index.html文件。
    host:"localhost",//定义主机
    port:8000,//定义端口号
    open:true//定义是否自动打开页面
  },
  plugins: [
    new htmlWebpackPlugin()//配置此插件会自动生成一个index.html并且自动引入bundle.js从而我们无需关心bundle.js的路径问题。
  ]
};

在main.js文件编写测试代码。

document.write("hello webpack!!")

二,测试部分

测试打包到本地

注意:若不使用html-webpack-plugin则需要在dist目录下的index.html里手动引入js文件。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="bundle.js"></script>
</head>
<body>

</body>
</html>

终端输入:webpack

带你使用webpack快速构建web项目的方法

带你使用webpack快速构建web项目的方法

打包成功后,此时dist目录下会多一个,bundle.js文件,
若使用html-webpack-plugin插件其实index.html会自动创建并且覆盖原先我自己创建的index.html。

带你使用webpack快速构建web项目的方法

打开dist目录下的index.html文件。查看测试结果

带你使用webpack快速构建web项目的方法

测试打包到虚拟服务器内存

大家都知道的小技巧~

在package.json文件下配置下webpack-dev-server的快捷键。

带你使用webpack快速构建web项目的方法

配置完成后就可以在终端使用:npm run dev 进行打包了。

自动打开页面~注意看地址栏与上边本地打开的区别。

带你使用webpack快速构建web项目的方法

到这里,已经做好了基本的搭建了。

踩过的坑:
不指定版本号直接安装以下依赖:

webpackwebpack-cliwebpack-dev-server

npm install webpack webpack-cli webpack-dev-server --save-dev

使用热部署(webpack-dev-server)会出现如下报错:

Error: Cannot find module 'webpack-cli/bin/config-yargs'

出现该报错的小伙伴可以尝试文章中提到的搭配的版本~

webpack默认只能打包json模块和js模块,对于其他模块的打包例如css,图片,等需要借助于相应的loader插件~下次有机会继续分享。

 到此这篇关于带你使用webpack快速构建web项目的方法的文章就介绍到这了,更多相关webpack构建web项目内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
List the UTC Time on a Computer
Jun 11 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
jQuery trigger()方法用法介绍
Jan 13 Javascript
使用C++为node.js写扩展模块
Apr 22 Javascript
JavaScript中关联原型链属性特性
Feb 13 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
jQuery仿移动端支付宝键盘的实现代码
Aug 15 jQuery
解决layui前端框架 form表单,table表等内置控件不显示的问题
Aug 19 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
vue项目实现减少app.js和vender.js的体积操作
Nov 12 #Javascript
详解vue 组件的实现原理
Nov 12 #Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
Nov 12 #Javascript
vue 图片裁剪上传组件的实现
Nov 12 #Javascript
js前端传json后台接收‘‘被转为quot的问题解决
Nov 12 #Javascript
使用Vant完成DatetimePicker 日期的选择器操作
Nov 12 #Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
Nov 11 #Javascript
You might like
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
清空上传控件input file的值
2010/07/03 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
2014/04/25 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
Python的净值数据接口调用示例分享
2016/03/15 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Python开发最牛逼的IDE——pycharm
2018/08/01 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
俄罗斯商务邀请函
2014/01/26 职场文书
《莫泊桑拜师》教学反思
2014/04/23 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
2014年绿化工作总结
2014/12/09 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
统计员岗位职责范本
2015/04/14 职场文书
工伤认定行政答辩状
2015/05/22 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
MSSQL基本语法操作
2022/04/11 SQL Server
python多次执行绘制条形图
2022/04/20 Python