带你使用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 存在陷阱 删除某一区域所有节点
May 10 Javascript
js 与 php 通过json数据进行通讯示例
Mar 26 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
浅谈JavaScript中的this指针和引用知识
Aug 05 Javascript
ES6学习之变量的解构赋值
Feb 12 Javascript
微信小程序scroll-view组件实现滚动动画
Jan 31 Javascript
原生javascript AJAX 三级联动的实现代码
May 04 Javascript
vue表单自定义校验规则介绍
Aug 28 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
electron实现qq快捷登录的方法示例
Oct 22 Javascript
Vue 之孙组件向爷组件通信的实现
Apr 23 Javascript
微信小程序之数据绑定原理解析
Aug 14 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
浅谈php冒泡排序
2014/12/30 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
python使用Matplotlib绘制分段函数
2018/09/25 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
python中的列表与元组的使用
2019/08/08 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
小学新学期教师寄语
2014/01/18 职场文书
个人对照检查材料
2014/02/12 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
烈士陵园观后感
2015/06/08 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js