带你使用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方法
Sep 29 Javascript
js加减乘除丢失精度问题解决方法
May 16 Javascript
JS实现文字向下滚动完整实例
Feb 06 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
Sep 26 Javascript
继续学习javascript闭包
Dec 03 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
Apr 29 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
详解axios在node.js中的post使用
Apr 27 Javascript
Node.js 8 中的重要新特性
Jun 28 Javascript
AngularJS中控制器函数的定义与使用方法示例
Oct 10 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
Jun 19 jQuery
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编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP5.3新特性小结
2016/02/14 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
Javascript hasOwnProperty 方法 &amp; in 关键字
2008/11/26 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
2013/11/18 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
js图片上传的封装代码
2017/08/01 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
python将ansible配置转为json格式实例代码
2017/05/15 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
对python 命令的-u参数详解
2018/12/03 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
Django数据库迁移常见使用方法
2020/11/12 Python
如何删除一个表里面的重复行
2013/07/13 面试题
思想品德自我评价
2014/02/04 职场文书
最新奶茶店创业计划书范文
2014/02/08 职场文书
机关会计岗位职责
2014/04/08 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL