带你使用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 相关文章推荐
jqPlot Option配置对象详解
Jul 25 Javascript
JavaScript window.document的属性、方法和事件小结
Oct 24 Javascript
JS函数重载的解决方案
May 13 Javascript
分享几种比较简单实用的JavaScript tabel切换
Dec 31 Javascript
全面了解构造函数继承关键apply call
Jul 26 Javascript
AngularJS控制器之间的通信方式详解
Nov 03 Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
Nov 13 Javascript
Nuxt.js 数据双向绑定的实现
Feb 17 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
Feb 27 Javascript
原生js实现简单轮播图
Oct 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
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
php设计模式之委托模式
2016/02/13 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
深入了解js原型模式
2019/05/30 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
[44:04]OG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python脚本实时处理log文件的方法
2016/11/21 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
python批量处理txt文件的实例代码
2020/01/13 Python
浅析Python面向对象编程
2020/07/10 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
与UNIX有关的几个名词
2015/09/17 面试题
学期自我评价
2014/01/27 职场文书
小学生植树节活动总结
2014/07/04 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
公司职员入党自传书
2015/06/26 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android