带你使用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 相关文章推荐
动态加载js和css(外部文件)
Apr 17 Javascript
JS实现局部选择打印和局部不选择打印
Apr 03 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
Oct 05 Javascript
详解vue 模版组件的三种用法
Jul 21 Javascript
微信小程序富文本渲染引擎的详解
Sep 30 Javascript
JavaScript callback回调函数用法实例分析
May 08 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
vueJs实现DOM加载完之后自动下拉到底部的实例代码
Aug 31 Javascript
详解关于element el-button使用$attrs的一个注意要点
Nov 09 Javascript
Vue退出登录时清空缓存的实现
Nov 12 Javascript
node.js Promise对象的使用方法实例分析
Dec 26 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
2012/07/26 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
Python中的闭包实例详解
2014/08/29 Python
python使用any判断一个对象是否为空的方法
2014/11/19 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
Python 如何提高元组的可读性
2019/08/26 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
四风问题自查报告剖析材料
2014/02/08 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
优秀教师申报材料
2014/12/16 职场文书
捐款感谢信
2015/01/20 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
设置IIS Express并发数
2022/07/07 Servers