一,为什么要使用webpack

在没有webpack的时候,我们需要在一个index.html中引入这样许许多多的资源,还得根据他们的依赖关系,确保被依赖项在依赖项之前引入,这样极大地增加了前端开发地成本。

于是人们就想要一个工具,能够自动识别js地相互调用关系,把所有的js文件打包成一个js文件,这样一来,前端开发者就可以分模块写代码,降低开发成本。

二,webpack的安装

npm install webpack webpack-cli --global

其中,webpack是主包,而webpack-cli使得我们等够使用命令行执行webpack命令。–global全局安装。

当然,做项目时,为了保证该项目在每个成员的电脑上运行环境一致,还是推荐工作目录安装。

1,切换到工作目录下
2,npm init -y 初始化项目配置,会生成一个package.json文件夹。
3,npm install webpack webpack-cli -D 这是开发环境需要的依赖

这三步执行完毕后得到:

三,webpack打包

运行npx实际上就是执行npde_modules中已经下载好的依赖,这里是webpack.
打包的webpack默认是把src下的index.js文件作为入口文件,这样一来呢就会把相关的代码(相互依赖关系的代码)一起打包成一个js文件。
可以看到,它打包出来是个IIFE,里面还是箭头函数。

(()=>{"use strict";helloWorld()})();

四,使用命令行来自定义webpack配置

删除上文中打包出来的dist文件夹,然后在项目根目录的命令行输入:

npx webpack --entry ./src/index.js --mode production
--entry设置打包的入口文件
--mode设置打包的环境为生产环境

运行完毕后可以看到确实生成了打包文件dist。
但是呢,这样使用命令行的形式,就很不直观,当配置多了的话,就很难书写及记录。
所幸,webpack提供了配置文件供用户进行配置。当我们修改配置文件的时候,就会覆盖和添加webpack的默认配置。

五,webpack提供的配置文件

在项目的根目录创建一个名为webpack.config.js的文件夹,这个文件的名字必须是这个,因为webpack需要读取这个指定的文件来覆盖和添加默认配置。
又因为这个文件是在node.js环境下运行的,所以,它采用的是commonjs的模块化方式。

const path = require("path");//这个是node内置的一个模块,用来操作文件路径的方法
module.exports = {entry: "./src/index.js",//设置打包入口output: {path: path.resolve(__dirname, "dist"),//设置打包的出口,需要是绝对路径,而__dirname是node的一个全局变量,记录当前文件的绝对路径filename: "bundle.js"//设置打包出来的js的文件名},mode: "none"//设置打包的模式:开发/测试/生产,这个和process.env.NODE_ENV息息相关,我们在package.json中用命令行设置:webpack --mode=production
};

这样打包出来的文件:

六,使用webpack打包出来的文件

目前为止,仅仅是把入口文件index.js所链接的js文件打包成一个。那要如何使用呢?
现在需要手动在index.heml中引入(相较于使用webpack之前需要引入多个,现在只需要引入一个):

可以看到,这里正确地执行了,说明webpack打包成功了。这样就解决了我们在文章提出的需求:在index.html中需要引入多个资源文件的问题。
至于这里的手动引入,后续会有更好的解决方法。暂且按下不表。

webpack5学习与实战-(一)-webpack的初步认识相关推荐

  1. 资源|2019 年 11 月最新《TensorFlow 2.0 深度学习算法实战》中文版教材免费开源(附随书代码+pdf)...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送 2019 年 10 月,谷歌正式宣布,开源机器学习库 TensorFlow 2.0 现在 ...

  2. 【重磅干货】Python、机器学习、深度学习算法实战和应用必备书籍

    [导读]首先祝大家中秋佳节快乐,乘此良辰美景,今天就给大家发一波福利干货!本文给大家分享机器学习.深度学习算法实战和应用必备的4本"宝藏"书.具体书籍展示如下:(文末提供下载方式! ...

  3. 400页《TensorFlow 2.0 深度学习算法实战》中文版教材免费下载(附随书代码+pdf)...

    Tensorflow自谷歌提出以来就成为最受欢迎的深度学习框架之一,到目前为止也已经被下载超过 4000 万次.其中TensorFlow2.0更是修复之前非常多的不人性的特性,备大家欢迎. 今天给大家 ...

  4. TensorFlow 2.0深度学习案例实战

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 基于TensorFlow 2.0正式版, 理论与实战结合,非常适合入门学习! 这是一本面向人工 ...

  5. R基于H2O包构建深度学习模型实战

    R基于H2O包构建深度学习模型实战 目录 R基于H2O包构建深度学习模型实战 #案例分析

  6. 深度学习项目实战-关键点定位视频课程

    课程目标 快速掌握如何使用caffe框架完成一个深度学习的实际项目 适用人群 深度学习爱好者,全民皆可入门 课程简介 深度学习项目实战-关键点定位课程以人脸关键点检测为背景,选择多阶段检测的网络架构, ...

  7. 【深度学习】实战Kaggle竞赛之线性模型解决波士顿房价预测问题(Pytorch)

    [深度学习]实战Kaggle竞赛之线性模型解决波士顿房价预测问题 文章目录 1 概述1.1 Competition Description1.2 Practice Skills 2 数据处理 3 训练 ...

  8. 关于大数据学习,实战型的书籍

    关于大数据学习,实战型的书籍,如果是基础性的学习和了解,在大量的书本中,我推崇这本书,这本书是理论和实践的结合,有代码,有项目,讲得透彻.适合初级入门也适合熟练

  9. pytorch卷积神经网络_资源|卷积神经网络迁移学习pytorch实战推荐

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 一.资源简介 这次给大家推荐一篇关于卷积神经网络迁移学习的实战资料,卷积神经网络迁移学 ...

  10. python3人工智能网盘_《Python3入门人工智能掌握机器学习+深度学习提升实战能力》百度云网盘资源分享下载[MP4/5.77GB]...

    内容简介 本资源为<Python3入门人工智能掌握机器学习+深度学习提升实战能力>百度云网盘资源分享下载,具体看下文目录,格式为MP4/5.77GB.本资源已做压缩包处理,请勿直接在百度网 ...

最新文章

  1. aop框架的一个简单实现
  2. 数字图像处理:第二章 图象获取、显示、表示与处理
  3. FlexPaper不能跨服务器加载远程文件解决办法
  4. 解决linux下内网域名的ping结果和nslookup结果不一致
  5. Sdk Manager.exe 闪退问题的解决
  6. python 按从小到大的顺序组合成一个字典_Python实现字典排序、按照list中字典的某个key排序的方法示例...
  7. 高通摄像头调试(OV8856)
  8. 景区门票系统上云 低成本、安全性高
  9. 为软件生成授权的唯一代码 CPUID+主板ID+内存ID
  10. python汉字拼音首字母,python获取一组汉字拼音首字母的方法
  11. multisim虚拟电子实验室安装包及汉化包(百度网盘地址)
  12. 电镜的成像原理-透射电镜成像原理1
  13. leetcode LCP3 机器人大冒险(C++)
  14. 新型企业最重视的评估手段:360评估
  15. 千人基因组(1000 Genomes)提取群体(population)或者样本(sample ID)信息
  16. 设计模式 | 建造者模式及典型应用
  17. 计算机技术英文文章作者及篇名,英语论文注释及参考文献格式
  18. python数据挖掘例题_大工20春《数据挖掘》在线作业1题目【标准答案】
  19. 瓦片地图坐标相关计算
  20. 开发编码格式_编码和游戏开发

热门文章

  1. 《Web漏洞防护》读书笔记——第5章,数据安全
  2. 58java面试题_58到家,java开发实际面试题
  3. 批处理计算n天前\后的日期
  4. Python和C++交互
  5. MyBatis的分页插件PageHelper的使用
  6. Java中的类加载器ClassLoader
  7. DICOM中的入门概念
  8. v-for 遍历 Map
  9. Tensorflow模型变量保存
  10. 【Amaple教程】4. 组件