带你使用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 相关文章推荐
jquery animate图片模向滑动示例代码
Jan 26 Javascript
跨浏览器的事件对象介绍
Jun 27 Javascript
js遍历、动态的添加数据的小例子
Jun 22 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
Apr 04 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
Aug 13 Javascript
javascript实现日期时间动态显示示例代码
Sep 08 Javascript
JQuery实现左右滚动菜单特效
Sep 28 Javascript
Bootstrap零基础入门教程(二)
Jul 18 Javascript
解析利用javascript如何判断一个数为素数
Dec 08 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 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 分页类 扩展代码
2009/06/11 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
apache php模块整合操作指南
2012/11/16 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
详解基于webpack&amp;gettext的前端多语言方案
2019/01/29 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python 字符串只保留汉字的方法
2018/11/16 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
荷兰超市:DEEN
2018/03/14 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
党员干部承诺书
2014/03/25 职场文书
大学军训的体会
2014/11/08 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB