网页中常见的静态资源:

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. Go语言基本类型

    1.Go语言fmt包详解 fmt.Println() ###常用打印 fmt.Print() fmt.Printf() ###格式化 fmt.Sprintf() ###字符串拼接 a)普通占位符 占位 ...

  2. Java学习之==>注释、数据类型、变量、运算符

    一.注释 在Java中有3种标记注释的方式,最常用的方式是 // ,其注释的内容从 // 开始,到本行结束.但需要注意的是,我们不建议把注释写在代码的尾部(即尾注释),我们建议把注释写在代码的上一行, ...

  3. Elasticsearch 6.2.3版本 Windows环境 简单操作

    背景描述 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进.性能最好的.功能最全的搜索引擎库. El ...

  4. Elastic search中使用nested类型的内嵌对象

    在大数据的应用环境中,往往使用反范式设计来提高读写性能. 假设我们有个类似简书的系统,系统里有文章,用户也可以对文章进行赞赏.在关系型数据库中,如果按照数据库范式设计,需要两张表:一张文章表和一张赞赏 ...

  5. 什么是token?你是怎么理解token?

    1.Token的引入: Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生. 2. ...

  6. Alias sample(别名采样)

    应用场景:加权采样,即按照随机事件出现的概率抽样 具体算法: 举例如上,随机事件出现的概率依次是1/2,1/3,1/12,1/12;记随机事件的个数为N,则所有事件概率乘以N后概率为2,4/3,1/3 ...

  7. ucloud建新主机

    系统盘默认20G,可调到40不增加费用.需建好主机后关机才能更改. root密码按统一的设 设好主机名,选好分组

  8. C++ Primer: 1. 初识输入和输出

    C++没有定义任何的输入和输出语句,而是使用了 标准库来提供IO机制---iostream; 标准库iostream定义了4种不同的IO对象: cin:     标准输入对象:instream类型的对 ...

  9. CodeForces-431D Random Task

    题目描述 求一个\(n\),使得\(n+1\)到\(2n\)这些数的二进制中恰好有\(k\)个\(1\)的数有\(m\)个. Input 输入包含两个正整数\(m,k\).$(0<=m<= ...

  10. 部署 laravel项目404错误

    1.nginx 下部署出现404错误 (1)打开php.ini中的php_openssl.dll这个扩展: (2)修改nginx 下的站点目录配置文件(我的是配置在vhost.conf)为: loca ...