webpack打包配置(Webpack 配置)

2025-07-16 15:15:01 0

webpack打包配置(Webpack 配置)

今天给各位分享Webpack 配置的知识,其中也会对Webpack 配置进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

Webpack 配置

***隐藏网址***
***隐藏网址***
***隐藏网址***

static 设置的是静态资源目录的位置,不是打包生成的文件的存放位置,devServer 打包生成的文件存放在内存中,不存放到硬盘目录。

static.publicPath 设置的是访问静态资源的路径,不是访问打包生成的资源的路径,打包生成的资源路径通过 output.publicPath 访问,静态资源路径访问的是直接存放在静态目录中的静态资源。

配置文件

initial chunk 的文件名

占位符:

non-initial chunk 的文件名,占位符参考 output.filename

设置为 true ,每次打包之前清理 output.path 目录中的所有内容,可以替代 CleanWebpackPlugin 插件。

定义资源存放的位置,例如根据以上的配置文件打包之后生成如下文件:

将 1 2 3 生成的资源都存放到 output.path 目录, dist/app.bundle.js dist/css/app.min.css dist/images/1.jpg

部署的时候,将该目录下的内容复制到服务器对应的目录即可。

定义资源访问的路径

资源访问路径 = output.publicPath + 资源名称

output.publicPath 可以是绝对路径、相对于服务的路径、相对于页面的路径。 不管是哪种路径,都要以 / 结尾

HtmlWebpackPlugin 生成的 index.html 文件:

MiniCssExtractPlugin 生成的 css 文件:

HtmlWebpackPlugin 生成的 index.html 文件:

MiniCssExtractPlugin 生成的 css 文件:

HtmlWebpackPlugin 生成的 index.html 文件:

MiniCssExtractPlugin 生成的 css 文件:

不管通过哪种路径设置 output.publicPath ,都只是影响 HtmlWebpackPlugin 和 MiniCssExtractPlugin 生成的文件中引用其他资源的路径。具体能不能根据资源路径访问到相应的资源,还得正确的部署 output.path 目录到服务器。

***隐藏网址***

如果你的页面希望在其他不同路径中找到资源文件,则可以通过 devServer 配置中的 devMiddleware.publicPath 选项进行修改。

在生产模式下,推荐将 output.publicPath 设置为绝对路径,然后将 output.path 目录部署与绝对路径对应的服务器中。

配置文件

module.rules 是匹配规则数组,数组中的每一项为一条匹配规则,以下称为 rule。每条 rule 包括匹配条件和匹配结果。

对于依赖图中的每个模块路径,都按照 module.rules 中的 rule 依次进行匹配。如果模块路径满足某个 rule 的匹配条件,则对该模块应用该 rule 的 匹配结果中指定的 loader 进行预处理。? 如果模块路径满足多个 rule 的匹配条件 ?

匹配条件包括 test include exclude 选项,每个选项为一个匹配条件,选项的值可以是:

如果某个 rule 同时有多个匹配条件选项,则模块路径必须同时满足所有的匹配条件,才会对模块应用匹配结果。test 和 include 具有相同的作用,都是必须匹配选项。exclude 是必不匹配选项(优先于 test 和 include)。

最佳实践:

以上配置文件的第二条 rule,如果某个模块不在 ./src/node_modules/ 和 ./src/libs/ 目录下,并且在 ./src/ 目录下,并且模块名以 .js 结尾,则满足该条 rule 的匹配条件。

package.json

webpack.common.js

webpack.prod.js

webpack.dev.js

create-react-app craco进行webpack配置(修改篇)

npm install compression-webpack-plugin --save //打包build生成gizp压缩文件

compression-webpack-plugin 打包的文件生成 .gz后缀的文件需要服务器配置支持。

npm install uglifyjs-webpack-plugin@1 --save-dev
( 必须为1.0版本,否则打包报错)

npm i @babel/plugin-proposal-decorators --save -dev

npm i webpack-bundle-analyzer --save -dev

:生产版本关闭此项

npm install simple-progress-webpack-plugin --save -dev

以上配置是我项目中使用,可以按需使用。

打包优化去掉console.log,webpack.js配置排除打包瘦身

在vue.config中,配置:

chainWebpack(config) {

    config.optimization.minimizer(’terser’).tap((args) =》 {

      args.terserOptions.compress.drop_console = true

      return args

    })

}
通过配置vue-cli把一些平常不需要用的包排除在打包文件之外。

例如:让 webpack 不打包 vue xlsx 和 element 

先找到 vue.config.js , 添加 externals 项,具体如下:

再次运行打包,我们会发现包的大小已经大幅减小: 三个包已经不在打包的目标文件中了。

 但是我们还要使用这些包,可以通过CDN访问

在开发环境时,文件资源还是可以从本地node_modules中取出,而只有项目上线了,才需要去使用外部资源。此时我们可以使用 环境变量 来进行区分。具体如下:

在 vue.config.js 文件中:

let externals = {}

let cdn = { css: }

const isProduction = process.env.NODE_ENV === ’production’ // 判断是否是生产环境

if (isProduction) {

  externals = {

      /**

      * externals 对象属性解析:

      * ’包名’ : ’在项目中引入的名字’

    */

      ’vue’: ’Vue’,

      ’element-ui’: ’ELEMENT’,

      ’xlsx’: ’XLSX’

  }

  cdn = {

    css: [

***隐藏网址***

    ],

    js: [

      // vue must at first!

***隐藏网址***

***隐藏网址***

***隐藏网址***

    ]

  }

}

之后通过 html-webpack-plugin注入到 index.html之中:

chainWebpack(config) {

  config.plugin(’preload’).tap(() =》 [

    {

      rel: ’preload’,

      fileBlacklist: ,

      include: ’initial’

    }

  ])

  // 注入cdn变量 (打包时会执行)

  config.plugin(’html’).tap(args =》 {

    args.cdn = cdn // 配置cdn给插件

    return args

  })

  // 省略其他...

}

找到 public/index.html 通过配置CDN Config 依次注入 css 和 js。

修改head的内容如下:

《!-- 引入样式 --》

      《% for(var css of htmlWebpackPlugin.options.cdn.css) { %》

        《link rel="stylesheet" href="《%=css%》"》

        《% } %》

    《!-- 引入JS --》

    《% for(var js of htmlWebpackPlugin.options.cdn.js) { %》

      《script src="《%=js%》"》《/script》

    《% } %》

webpack打包Js文件

a .
注意点:index.js就是需要打包的文件打包之后的文件会放到dist目录中, 名称叫做main.js

b .
这句指令的含义是: 利用webpack将index.js和它依赖的模块打包到一个文件中
其实在webpack指令中除了可以通过命令行的方式告诉webpack需要打包哪个文件以外,
还可以通过配置文件的方式告诉webpack需要打包哪个文件

这句指令的含义是将webpack将index.js和他依赖的模块打包到一个文件中
其实webpack打包指令除了可以通知要打包哪些文件,还可以通过配置
2.2webpack常见配置

刚才是输入npx webpack index.js 那么现在就可以输入npx webpack了
如果想要使用其他指令,可以直接修改的 package.json 的scirpts

以后再打包的时候,就可以直接使用npm run test了;

当然,还可以看下devtool的取值,他生成的sourcemap映射表,对打包后的包的大小和打包速度有很大影响

WebPack打包React项目, 减小打包后生成的js文件.

***隐藏网址***
```

这里分别把 使用的 react , react-dom , jquery , react-router , 第三方库提了出来单独生成文件vendor.js

首先安装依赖: extract-text-webpack-plugin ,

之后在webpack中进行配置

**注意: ** 例子中配置中 {publicPath: ’./’} 不是必填项, 我这里是为了解决背景图片打包或路径不正确的问题, 具体请查看

文章分享结束,webpack打包配置和Webpack 配置的答案你都知道了吗?欢迎再次光临本站哦!

webpack打包配置(Webpack 配置)

本文编辑:admin

更多文章:


高压断路器的触头间介质击穿电压(户内高压真空断路器的工作原理好难啊,有没有看的懂的专家能够给我解释一下的)

高压断路器的触头间介质击穿电压(户内高压真空断路器的工作原理好难啊,有没有看的懂的专家能够给我解释一下的)

其实高压断路器的触头间介质击穿电压的问题并不复杂,但是又很多的朋友都不太了解户内高压真空断路器的工作原理好难啊,有没有看的懂的专家能够给我解释一下的,因此呢,今天小编就来为大家分享高压断路器的触头间介质击穿电压的一些知识,希望可以帮助到大家

2025年7月23日 21:00

reset歌曲下载(reset的音乐原声)

reset歌曲下载(reset的音乐原声)

各位老铁们,大家好,今天由我来为大家分享reset歌曲下载,以及reset的音乐原声的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录reset的音乐

2026年3月16日 01:00

hadoop教程培训(大数据培训课程都学什么)

hadoop教程培训(大数据培训课程都学什么)

大家好,hadoop教程培训相信很多的网友都不是很明白,包括大数据培训课程都学什么也是一样,不过没有关系,接下来就来为大家分享关于hadoop教程培训和大数据培训课程都学什么的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧

2025年9月27日 21:15

数据库实施阶段的工具(数据库应用系统的开发具体分为哪几个阶段(1)

数据库实施阶段的工具(数据库应用系统的开发具体分为哪几个阶段(1)

大家好,今天小编来为大家解答以下的问题,关于数据库实施阶段的工具,数据库应用系统的开发具体分为哪几个阶段(1这个很多人还不知道,现在让我们一起来看看吧!本文目录数据库应用系统的开发具体分为哪几个阶段(1.数据库设计分为几个阶段,各阶段的任务

2025年12月3日 16:45

用puts输出字符串(puts的功能是什么)

用puts输出字符串(puts的功能是什么)

各位老铁们,大家好,今天由我来为大家分享用puts输出字符串,以及puts的功能是什么的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录puts的功能

2025年9月25日 02:30

小时代1折纸时代在线观看(哪里可以看小时代—折纸时代的全部内容啊)

小时代1折纸时代在线观看(哪里可以看小时代—折纸时代的全部内容啊)

大家好,今天小编来为大家解答以下的问题,关于小时代1折纸时代在线观看,哪里可以看小时代—折纸时代的全部内容啊这个很多人还不知道,现在让我们一起来看看吧!本文目录哪里可以看小时代—折纸时代的全部内容啊郭敬明《小时代1.0折纸时代》电视剧《小时

2025年8月13日 05:30

进程和线程函数(函数中线程和函数的执行顺序)

进程和线程函数(函数中线程和函数的执行顺序)

今天给各位分享函数中线程和函数的执行顺序的知识,其中也会对函数中线程和函数的执行顺序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录函数中线程和函数的执行顺序线程和函数是什么关系main函数 是一个进程 还是一

2026年8月14日 08:30

python怎么读取二进制文件(如何用python生成和读取二进制文件)

python怎么读取二进制文件(如何用python生成和读取二进制文件)

各位老铁们好,相信很多人对python怎么读取二进制文件都不是特别的了解,因此呢,今天就来为大家分享下关于python怎么读取二进制文件以及如何用python生成和读取二进制文件的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看

2025年12月12日 09:15

网页设计与制作怎样制作网站(如何设计制作网站网站建设基本流程详解)

网页设计与制作怎样制作网站(如何设计制作网站网站建设基本流程详解)

大家好,今天小编来为大家解答以下的问题,关于网页设计与制作怎样制作网站,如何设计制作网站网站建设基本流程详解这个很多人还不知道,现在让我们一起来看看吧!本文目录如何设计制作网站网站建设基本流程详解网页设计与制作的详细流程是什么如何设计制作网

2026年5月30日 04:45

batt是什么意思(batt闪烁是什么意思)

batt是什么意思(batt闪烁是什么意思)

各位老铁们,大家好,今天由我来为大家分享batt是什么意思,以及batt闪烁是什么意思的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录batt闪烁是

2026年7月22日 18:30

小游戏大全网页版(小游戏网站有哪些拜托了各位 谢谢)

小游戏大全网页版(小游戏网站有哪些拜托了各位 谢谢)

各位老铁们好,相信很多人对小游戏大全网页版都不是特别的了解,因此呢,今天就来为大家分享下关于小游戏大全网页版以及小游戏网站有哪些拜托了各位 谢谢的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录小游戏网站有哪些拜托

2025年9月28日 16:00

c语言一维数组有几个数(c语言的一维数组中至少要有几个元素)

c语言一维数组有几个数(c语言的一维数组中至少要有几个元素)

大家好,如果您还对c语言一维数组有几个数不太了解,没有关系,今天就由本站为大家分享c语言一维数组有几个数的知识,包括c语言的一维数组中至少要有几个元素的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录c语言的一维数组

2025年11月27日 13:30

adverse形容词(英语问题,求指导)

adverse形容词(英语问题,求指导)

本篇文章给大家谈谈adverse形容词,以及英语问题,求指导对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录英语问题,求指导英语作文常用单词

2025年8月6日 03:00

linuxtracert命令的作用(急需高手指点~ping命令是用的什么端口)

linuxtracert命令的作用(急需高手指点~ping命令是用的什么端口)

各位老铁们好,相信很多人对linuxtracert命令的作用都不是特别的了解,因此呢,今天就来为大家分享下关于linuxtracert命令的作用以及急需高手指点~ping命令是用的什么端口的问题知识,还望可以帮助大家,解决大家的一些困惑,下

2026年3月25日 22:30

webcontent(用eclipse开发web工程时WebRoot和WebContent什么区别怎么有时WebRoot,而有时没有呢,请帮一下忙)

webcontent(用eclipse开发web工程时WebRoot和WebContent什么区别怎么有时WebRoot,而有时没有呢,请帮一下忙)

今天给各位分享用eclipse开发web工程时WebRoot和WebContent什么区别怎么有时WebRoot,而有时没有呢,请帮一下忙的知识,其中也会对用eclipse开发web工程时WebRoot和WebContent什么区别怎么有时

2025年5月31日 01:45

cocos2d是三维游戏引擎吗(如何评价cocos2d-x的3d性能)

cocos2d是三维游戏引擎吗(如何评价cocos2d-x的3d性能)

这篇文章给大家聊聊关于cocos2d是三维游戏引擎吗,以及如何评价cocos2d-x的3d性能对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录如何评价cocos2d-x的3d性能如何用Cocos引擎打造次世代3D画质Unity

2026年9月16日 08:45

animation公司的动漫(全职猎人是哪个动画公司制作的这对我以后发展有很关键作用.求回答~)

animation公司的动漫(全职猎人是哪个动画公司制作的这对我以后发展有很关键作用.求回答~)

各位老铁们好,相信很多人对animation公司的动漫都不是特别的了解,因此呢,今天就来为大家分享下关于animation公司的动漫以及全职猎人是哪个动画公司制作的这对我以后发展有很关键作用.求回答~的问题知识,还望可以帮助大家,解决大家的

2025年12月13日 16:30

sql server2019下载官网(sql2019有效安装文件夹在哪)

sql server2019下载官网(sql2019有效安装文件夹在哪)

“sql server2019下载官网”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看sql server2019下载官网(sql2019有效安装文件夹在哪)!本文目录sql2019有效安装文件夹在哪server2012r2

2025年10月13日 08:00

varchar2 100 能存多少汉字(varchar2(100)多长)

varchar2 100 能存多少汉字(varchar2(100)多长)

大家好,关于varchar2 100 能存多少汉字很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于varchar2(100)多长的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望

2026年4月21日 18:00

mysqlworkbench是什么(MySQL Workbench 5.2 CE如何应用都能做些什么)

mysqlworkbench是什么(MySQL Workbench 5.2 CE如何应用都能做些什么)

这篇文章给大家聊聊关于mysqlworkbench是什么,以及MySQL Workbench 5.2 CE如何应用都能做些什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录MySQL Workbench 5.2 CE如何应用

2025年6月5日 16:45

近期文章

char ch用法(c语言char ch)
2026-09-24 18:45:02
本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索