带你使用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 相关文章推荐
详解JavaScript正则表达式之分组匹配及反向引用
Mar 09 Javascript
EasyUi combotree 实现动态加载树节点
Apr 01 Javascript
AngularJS入门教程之AngularJS表达式
Apr 18 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
纯javascript版日历控件
Nov 24 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
JS中如何实现点击a标签返回页面顶部的问题
Jan 19 Javascript
JavaScript转换数据库DateTime字段类型方法
Jun 27 Javascript
jQuery中extend函数简单用法示例
Oct 11 jQuery
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
Vue生命周期activated之返回上一页不重新请求数据操作
Jul 26 Javascript
Ajax实现异步加载数据
Nov 17 Javascript
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
source.php查看源文件
2006/12/09 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
stripos函数知识点实例分享
2019/02/11 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
几种tab切换详解
2017/02/03 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
python列表与元组详解实例
2013/11/01 Python
Flask框架的学习指南之用户登录管理
2016/11/20 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
python绘制简单彩虹图
2018/11/19 Python
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
医学专业毕业生个人求职信
2013/12/25 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
秋季运动会稿件
2014/01/30 职场文书
人生遥控器观后感
2015/06/11 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js