带你使用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 相关文章推荐
超清晰的document对象详解
Feb 27 Javascript
容易造成JavaScript内存泄露几个方面
Sep 04 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
微信小程序之小豆瓣图书实例
Nov 30 Javascript
深入理解Angularjs中的$resource服务
Dec 31 Javascript
详解webpack编译多页面vue项目的配置问题
Dec 11 Javascript
简易Vue评论框架的实现(父组件的实现)
Jan 08 Javascript
Vue2.0 实现移动端图片上传功能
May 30 Javascript
在axios中使用params传参的时候传入数组的方法
Sep 25 Javascript
js实现开关灯效果
Mar 30 Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 Javascript
五句话帮你轻松搞定js原型链
Dec 09 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 HTML代码串 截取实现代码
2009/06/29 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
php商品对比功能代码分享
2015/09/24 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
JS仿淘宝实现的简单滑动门效果代码
2015/10/14 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
python 装饰器重要在哪
2021/02/14 Python
网络体系结构及协议的定义
2014/03/13 面试题
出国签证在职证明
2014/01/16 职场文书
人力资源管理求职信
2014/08/07 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
教师工作决心书
2015/02/04 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
战马观后感
2015/06/08 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP