带你使用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支持带x身份证号码验证函数
Aug 10 Javascript
createElement与createDocumentFragment的点点区别小结
Dec 19 Javascript
鼠标放在图片上显示大图的JS代码
Mar 26 Javascript
javascript学习笔记(一)基础知识
Sep 30 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
Dec 14 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
浅谈在js传递参数中含加号(+)的处理方式
Oct 11 Javascript
js中数组插入、删除元素操作的方法
Feb 15 Javascript
详解Javascript几种跨域方式总结
Feb 27 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
Jquery 设置标题的自动翻转
2009/10/03 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
layui动态表头的实现代码
2019/08/22 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
python自动化测试实例解析
2014/09/28 Python
python字典的常用操作方法小结
2016/05/16 Python
Python 调用Java实例详解
2017/06/02 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
小学生防溺水广播稿
2014/01/12 职场文书
励志演讲稿500字
2014/08/21 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers