网页中常见的静态资源:

js: .js .jsx .coffee .ts(TypeScript 类 C# 语言)

css: .css .less .sass .scss

Images: .jpg .png .gif .bmp .svg

Fonts: .svg .ttf .eot .woff .woff2

Template: .ejs .jade .vue

网页中引入较多的静态资源会使网页的加载速度变慢(要发起很多的二次请求),并且还要处理复杂的依赖关系

webpack概念:

是一个前端自动化构建工具,基于node.js 开发的前端工具,可以完美的实现资源的合并,打包,压缩等功能。能自动寻找到浏览器不能识别的语言,进行兼容处理。默认只能打包js

webpack核心概念

Entry:入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。

Module:模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。

Chunk:代码块,一个 Chunk 由多个模块组合而成,用于代码合并与分割。

Loader:模块转换器,用于把模块原内容按照需求转换成新内容。

Plugin:扩展插件,在 Webpack 构建流程中的特定时机注入扩展逻辑来改变构建结果或做你想要的事情。

Output:输出结果,在 Webpack 经过一系列处理并得出最终想要的代码后输出结果。

mode: 模式,选择development 或者production

配置webpack环境:

1、全局安装 npm install webpack webpack-cli webpack-dev-server -g

2、 创建项目文件夹,例如文件夹名称为vue,在文件夹中创建两个文件夹,分别文dist和src

3、输入命令npm init -y ,初始化文件包,会生成一个package.json 文件,注意不要随意修改此文件,后续步骤再进行配置

4、安装相应的所需模块,例如npm i jquery -S 安装 jQuery

5、在文件包的根目录下面创建文件webpack.config.js文件,在src中创建main.js 、index.html文件,分别写入相应的调试代码。

6、配置webpack.config.js文件

7、修改package.json的配置

--open 设定自动打开项目

--port 3000 指定端口为3000

--contentBase src 指定启动的根目录,会自动打开根目录中的index.html文件,启用过程比较繁琐,建议用html-webpack-plugin 插件配置启动页面

--hot 启用浏览器热更新

8、运行 npm run dev ,会自动打开index.html,在dist目录下并不会看到bundle.js ,但是在index.html中引入<script src="/bundle.js"></script>,会生效,则打包成功,在这里bundle.js直接托管到电脑的内存中,虽然看不到,但是确实存在,它和dist平级

* 

html-webpack-plugin插件配置:

1、运行 npm i html-webpack-plugin --save-dev 安装到开发依赖

2、在webpack.config.js文件中需要先引入模块,然后再进行配置,注意,前面我们安装的webpack为全局的,这里就会报错

因为本地找不到webpack,所以可以再执行npm install webpack安装本地包,在webpack.config.js加入下面代码

可以更改filename的值,查看物理磁盘的页面和内存里的页面的区别,可以发下内存磁盘的html文件body的底部生成了一个script标签,引入了bundle.js

因此可以将物理页面的<script src="/bundle.js"></script>注释掉,也不会影响页面效果,也就是使用html-webpack-plugin插件之后,不需要手动处理bundle.js的引入,插件会自动帮我们创建script标签,引入正确的bundle.js

使用webpack打包css:

webpack只能打包js文件,要打包其他文件需要安装其他模块

1、运行 npm i style-loader css-loader --save-dev

2、修改webpack.config.js文件的配置

使用webpack打包less: (sass的打包和less的类似 npm i sass-loader node-sass --save-dev)

1、运行 npm i less-loader less -D

2、修改webpack.config.js文件的配置

使用webpack打包url地址文件:

1、运行 npm i url-loader file-loader --save-dev

2、修改webpack.config.js文件的配置 {test:/.jpg|png|gif|jpeg$/, use: 'url-loader' } //处理图片路径的规则

webpack.config.js文件的配置

webpack4基础配置的更多相关文章

  1. webpack4基础入门操作(二)(讲解下webpack的配置内容)

    前序:我之所以开始写这个系列,是因为我最近出去看了下外面的情况,发现技术更新的脚步太快了.我的技术栈已经完全落伍了. 所以准备今年学习写新的东西,而React.webPack4就是我的第一步.前面我看 ...

  2. StackExchange.Redis帮助类解决方案RedisRepository封装(基础配置)

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫,请注明原文地址.http://www.cnblogs.com/tdws/p/5815735.html 写在前面 这不是教程,分享而已,也欢迎园友们多 ...

  3. Hibernate 基础配置及常用功能(三)

    本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...

  4. Emacs学习心得之 基础配置

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...

  5. nginx 的基础配置[转]

    nginx 的基础配置 分类: 工具软件2013-11-13 23:26 11人阅读 评论(0) 收藏 举报   目录(?)[-] 管理配置文件 全局配置 虚拟机server配置 location配置 ...

  6. freeRadius 基础配置及测试

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  7. Oracle 10g DataGuard手记之基础配置

    DataGuard为企业数据的高可用性,数据安全以及灾难恢复提供支持,一般由一个primary db与几个物理或逻辑standby db组成一个DataGuard配置. 系统环境 操作系统为windo ...

  8. SpringMVC最基础配置

    SpringMVC和Struts2一样,是前后台的一个粘合剂,struts2用得比较熟悉了,现在来配置一下SpringMVC,看看其最基础配置和基本使用.SpriingMVC不是太难,学习成本不高,现 ...

  9. 使用Java管理Azure(1):基础配置

    Azure针对Java开发人员提供了非常丰富的开发库,开发工具,和相关插件,让你通过Java对Azure进行服务管理和开发,本文第一步先介绍如何快速的配置Java开发工具,主要针对目前比较流行的Ecl ...

随机推荐

  1. WPF界面设计—撸大师

    WPF界面设计,模仿了金山卫士,360,鲁大师的界面! <!--无边框窗体--> <Style x:Key="NoResize_window" TargetTyp ...

  2. ISO/ISO 参考模型 和 TCP/IP模型

    OSI 参考模型 国际化标准组织(International Organization for Standardization,ISO)于1978年提出了一个网络体系结构,成为开放系统互联参考模型(O ...

  3. fcitx无法切换到中文(manjaro)

    安装fcitx后不能切换到中文输入法,在.bashrc或者.profile中添加以下代码: #fcitx export GTK_IM_MODULE=fcitx  export QT_IM_MODULE ...

  4. Dojo入门:初识Dojo

      Dojo的全称是Dojo Toolkit,始创于2004年,是当前各种蓬勃发展的JS工具包中的佼佼者.Dojo 为富互联网应用程序(RIA) 的开发提供了完整的端到端的解决方案,包括核心的 Jav ...

  5. kendo Ui实现搜索选中建议 不改变输入框的值

    $("#SubjectFilter").kendoAutoComplete({ dataTextField: "patientCardNumber", temp ...

  6. DateTime相关

    1.string数据转成datetime DateTimeFormatter forPattern = DateTimeFormat.forPattern("yyyyMMddHH" ...

  7. Maven使用基础

    (转)https://my.oschina.net/xiaomaoandhong/blog/104045 基于 约定优于配置(Convention Over Configuration)的原则,无特殊 ...

  8. 模板变量设置 set 和 with

    from flask import Flask,render_template app = Flask(__name__) @app.route('/') def hello_world(): ret ...

  9. poj3761(反序表)

    题目链接:https://vjudge.net/problem/POJ-3761 题意:给出n和k,求通过k趟冒泡排序得到长为n的有序排列(元素为n个不同的数)的原排列有多少个. 思路: 先给出反序表 ...

  10. MySql数据库优化-汇总

    各位,不喜勿喷,和气生财- 数据库优化,是一种综合性的技术,不是通过某一种方式让数据库效率提高很多,而是通过各个方面的优化,来是数据库效率明显的稳步的提高. 主要包括以下: 1.库表的设计优化(三种范 ...