首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用webpack时不加载PNG

可以通过以下几种方式实现:

  1. 使用file-loader或url-loader:file-loader和url-loader是webpack的两个常用加载器,可以用于处理各种文件类型。在webpack配置文件中,可以配置这两个加载器来处理PNG文件。file-loader会将PNG文件复制到输出目录,并返回文件路径,而url-loader可以将PNG文件转换为base64编码的字符串,以减少HTTP请求。具体配置如下:
代码语言:javascript
复制

module.exports = {

代码语言:txt
复制
 module: {
代码语言:txt
复制
   rules: [
代码语言:txt
复制
     {
代码语言:txt
复制
       test: /\.png$/,
代码语言:txt
复制
       use: [
代码语言:txt
复制
         {
代码语言:txt
复制
           loader: 'file-loader',
代码语言:txt
复制
           options: {
代码语言:txt
复制
             name: '[name].[ext]',
代码语言:txt
复制
             outputPath: 'images/'
代码语言:txt
复制
           }
代码语言:txt
复制
         }
代码语言:txt
复制
       ]
代码语言:txt
复制
     }
代码语言:txt
复制
   ]
代码语言:txt
复制
 }

};

代码语言:txt
复制

或者

代码语言:javascript
复制

module.exports = {

代码语言:txt
复制
 module: {
代码语言:txt
复制
   rules: [
代码语言:txt
复制
     {
代码语言:txt
复制
       test: /\.png$/,
代码语言:txt
复制
       use: [
代码语言:txt
复制
         {
代码语言:txt
复制
           loader: 'url-loader',
代码语言:txt
复制
           options: {
代码语言:txt
复制
             limit: 8192,
代码语言:txt
复制
             name: '[name].[ext]',
代码语言:txt
复制
             outputPath: 'images/'
代码语言:txt
复制
           }
代码语言:txt
复制
         }
代码语言:txt
复制
       ]
代码语言:txt
复制
     }
代码语言:txt
复制
   ]
代码语言:txt
复制
 }

};

代码语言:txt
复制

这样配置后,在代码中引用PNG文件时,webpack会自动处理并将其复制到输出目录。

  1. 使用image-webpack-loader:image-webpack-loader是一个用于压缩和优化图片的webpack加载器。通过配置image-webpack-loader,可以在构建过程中对PNG文件进行压缩和优化,从而减小文件大小。具体配置如下:
代码语言:javascript
复制

module.exports = {

代码语言:txt
复制
 module: {
代码语言:txt
复制
   rules: [
代码语言:txt
复制
     {
代码语言:txt
复制
       test: /\.png$/,
代码语言:txt
复制
       use: [
代码语言:txt
复制
         'file-loader',
代码语言:txt
复制
         {
代码语言:txt
复制
           loader: 'image-webpack-loader',
代码语言:txt
复制
           options: {
代码语言:txt
复制
             mozjpeg: {
代码语言:txt
复制
               progressive: true,
代码语言:txt
复制
               quality: 65
代码语言:txt
复制
             },
代码语言:txt
复制
             optipng: {
代码语言:txt
复制
               enabled: false
代码语言:txt
复制
             },
代码语言:txt
复制
             pngquant: {
代码语言:txt
复制
               quality: [0.65, 0.9],
代码语言:txt
复制
               speed: 4
代码语言:txt
复制
             },
代码语言:txt
复制
             gifsicle: {
代码语言:txt
复制
               interlaced: false
代码语言:txt
复制
             },
代码语言:txt
复制
             webp: {
代码语言:txt
复制
               quality: 75
代码语言:txt
复制
             }
代码语言:txt
复制
           }
代码语言:txt
复制
         }
代码语言:txt
复制
       ]
代码语言:txt
复制
     }
代码语言:txt
复制
   ]
代码语言:txt
复制
 }

};

代码语言:txt
复制

这样配置后,image-webpack-loader会在构建过程中对PNG文件进行压缩和优化。

  1. 使用webpack插件:除了加载器,webpack还支持使用插件来处理文件。可以使用CopyWebpackPlugin插件将PNG文件复制到输出目录,或使用imagemin-webpack-plugin插件对PNG文件进行压缩和优化。具体配置如下:
代码语言:javascript
复制

const CopyWebpackPlugin = require('copy-webpack-plugin');

const ImageminPlugin = require('imagemin-webpack-plugin').default;

module.exports = {

代码语言:txt
复制
 plugins: [
代码语言:txt
复制
   new CopyWebpackPlugin({
代码语言:txt
复制
     patterns: [
代码语言:txt
复制
       {
代码语言:txt
复制
         from: 'src/images/*.png',
代码语言:txt
复制
         to: 'images/[name].[ext]'
代码语言:txt
复制
       }
代码语言:txt
复制
     ]
代码语言:txt
复制
   }),
代码语言:txt
复制
   new ImageminPlugin({
代码语言:txt
复制
     test: /\.(jpe?g|png|gif|svg)$/i
代码语言:txt
复制
   })
代码语言:txt
复制
 ]

};

代码语言:txt
复制

这样配置后,CopyWebpackPlugin会将PNG文件复制到输出目录,而ImageminPlugin会对PNG文件进行压缩和优化。

以上是使用webpack时不加载PNG的几种方式,具体选择哪种方式取决于项目需求和个人偏好。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 9.0使用WebView加载Url,显示页面无法加载

最近使用WebView加载Url显示页面,因为之前已经使用过很多次这种方式了,打包后在6.0的测试机上测试没什么问题,然后安心的将包给测试,测试大佬的手机系统是Android 9.0的,所以就出现了页面无法加载的情况...,还以为是自己代码哪里写错了,检查了很多遍都没发现什么问题,然后在5.0,7.0,8.0的测试机上测试都没问题,那就想到是9.0系统问题了,先看页面报错图: [fd6yx0hwl5.png] 在这里插入图片描述...3.既然默认情况下禁用明文支持,那我们就手动设置启动支持明文,这就需要 使用:android:usesCleartextTraffic=“true” | “false” true: 是否使用明文传输...,也就是可以使用http false: android 9.0 默认情况下使用https [4d0its87cy.png] 在这里插入图片描述 那就是添加:android:usesCleartextTraffic

6.6K30

【Qt】使用QPalette设置QPlainTextEdit颜色生效

【Qt】使用QPalette设置QPlainTextEdit颜色生效 Qt5.9 C++开发指南 源代码 使用QPalette设置QPlainTextEdit颜色生效 解决方法 参考资料 Qt5.9...使用QPalette设置QPlainTextEdit颜色生效 练习2.2 可视化UI设计的示例程序sample2_2,第32页的编写一个设置QPlainTextEdit的文本编辑框txtEdit...的字体颜色使用QPalette调色板设置QPlainTextEdit的文本编辑框的字体颜色没有生效,具体槽函数代码如下: void QWDialog::setTextFontColor() {...在实际使用时,如果使用了样式表设置了QPlainTextEdit文本编辑框的颜色,那么再使用QPalette设置QPlainTextEdit颜色生效,以样式表的为准。...参考资料 https://doc.qt.io/qt-5/qwidget.html#palette-prop 【Qt】使用QPalette设置按钮颜色生效

2.3K20

为什么推荐在Spring Boot中使用@Value加载配置

@Value注解相信很多Spring Boot的开发者都已经有接触了,通过使用该注解,我们可以快速的把配置信息加载到Spring的Bean中。...比如下面这样,就可以轻松的把配置文件中key为com.didispace.title配置信息加载到TestService中来使用 @Service public class TestService {...但是为什么推荐大家使用它呢?核心原因是:当我们使用@Value来直接提取配置信息使用的时候,会产生配置信息加载的碎片化。...比如,同一个配置,可能背多个Service或者Controller使用,当我们再要修改它的时候,就会存在一个遗漏的风险。我们无法方便的维护这些配置加载而导致一些问题。...我比较推荐的就是使用@ConfigurationProperties来分类和加载各种配置信息,比如,我要加载关于com.didispace的相关配置时候,就写一个这样的实现: @Configuration

6900

Webpack使用ReactRefreshWebpackPlugin对JSX文件进行本地热更新解析 $RefreshSig$ is not defined

前提最近在进行Webpack5学习,学习到HMR,也就是模块热替换,也叫模块热更新的时候,遇到了一个问题。...问题在进行开发环境内模块热更新的时候,React是借助于React Hot Loader来实现的HMR,目前已经改成使用react-refresh来实现了。...于是乎,我进行了以下代码的编写// webpack.config.jsconst path = require('path')const HtmlWebpackPlugin = require('html-webpack-plugin...');const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');const VueLoaderPlugin...还好最后参照了别人使用这个插件的代码,最后发现了问题。解决方案直接说问题解决方案这里面的问题就在于webpack.config.js内module.exports里面的mode。

96020

C#中使用FreeImage库加载Bmp、JPG、PNG、PCX、TGA、PSD等25种格式的图像(源码)。

8位的PG格式图像,但是利用.net的Bitmap类加载的图像会出现明显颗粒感,由于.net中的Bitmap类是基于GDI+操作的,因此我也是试着用我的Imageshop打开这幅图像(Imageshop...Stdpicture对象来加载这幅图像,能得到正确的结果。...FreeImage的介绍:       FreeImage是一款免费的、开源的、跨平台(Windows 、Linux 和Mac OS X )的,支持20 多种图像类型的(如BMP 、JPEG 、GIF 、PNG...为了能在.NET中使用FreeImage,我知道的有两种方式,一种是直接使用FreeImage 的Flat API,而这需要对使用的API函数进行声明。...当图像的位深小于8,需要获取调色板的数据。但是我对认为上述获取调色板的FreeImage_GetPalette函数存在内存泄露,无法释放这些RGBQUAD*分配的内存的。

2.6K100

前端女程序员教你,图片加载使用 SVG 作为图片 placehold

前言:使用 SVG 作为占位符不但可以减少数据大小还可以达到不错的显示效果。 不同类型的图片 placehold 请点击此处输入图片描述 对于图片占位符,通常我们会使用以下几种处理方式。...默认占位符:比如说用户想要查看个人资料显示头像内容,如果请求失败或者没有上传过图片,那么通常会使用默认占位符(这种占位符一般会使用 SVG 资源)。 纯色:从图像中获取颜色,并作为背景颜色。...图片在过度是时候回显得比较平滑(pinterest就是使用这种方式)。 模糊的图像:这种方式会获取原图的缩略图并对其进行渲染,等图片加载完成再过度到原图。...请点击此处输入图片描述 上图分别使用不同数量的形状来绘制原图。...使用矢量图作为 placehold 有一个很好的优点是小,例如上图 10 个图形的矢量图仅仅只占了 1030 个字节,当通过 SVGO 来传输,代码还能减少到 640 个字节。

1.6K90

Webpack 4教程 - 第八部分 使用prefetch和preload进行动态加载

使用,你可能会根据用户及其操作行为的做相应处理。比如,你有一个单页应用,只有当用户决定打开它的子页面加载特定代码。这样可以大幅节省应用的初始加载时间。...在Webpack使用动态导入,会新增一个chunk,我们视作异步chunk。 像这样的chunk会被打包进单独的文件。当使用表达式创建指向其文件的路径,你需要小心。...这是因为Webpack不能在编译知道哪些模块需要被导入。 你还需要知道像import(pathToFile)这样的完全的动态声明是不起作用的,因为Webpack至少需要一部分文件路径信息。...使用,只有匹配了正则表达式的模块会被打包。 webpackMode webpackMode属性定义了resolve动态模块的模式。支持以下模式: lazy 这是默认模式。...使用预先拉取和预先加载提升性能 Webpack 4.6.0为我们提供了预先拉取(prefetching)和预先加载(preloading)的功能。使用这些声明可以修改浏览器处理异步chunk的方式。

1.6K10

vuejs中使用axios如何实现滑动滚动条来动态加载列表数据

前言 在vuejs中,我们经常使用axios来请求数据,但是有时候,我们请求的数据量很大,那么我们如何实现滑动滚动条来加载数据呢?...生命周期钩子函数 然后,我们需要在onMounted函数中,进行监听 而在onUnmounted函数中,我们需要取消监听,解绑 编写事件处理函数handleScroll, 获取变量scrollTop是滚动条滚动,...距离顶部的距离,获取变量scrollHeight是滚动条的总高度,获取变量clientHeight是滚动条可视区域的高度 当滚动条到达底部,并且距离底部小于10px加载数据,也就是请求axios数据...window.removeEventListener('scroll', handleScroll); }) // 事件处理函数 function handleScroll() { // 变量scrollTop是滚动条滚动,...= document.documentElement.clientHeight || document.body.clientHeight; // 当滚动条到达底部,并且距离底部小于10px

36650

从零学脚手架(四)---babel

image.png babel-loader配置方式优先级高于其他两种方式 参数设置 在使用plugin/preset,可以设置属性。 不过参数形式有些奇葩。...useBuiltIns属性可以设置三个属性值: false 启用按需加载垫片功能,全部加载core-js垫片。此值为默认值。 entry 按照浏览器版本加载垫片。...> 75" ] image.png entry、usage有话说 babel在处理entry属性值,直接将按需加载处理逻辑做到了入口。...而在处理usage,则在用到时进行了单独引用,并且保证每一个API(类型、函数)只引用一次 在两者选择使用时,不要一味的追求usage,因为usage使用起来更为棘手 image.png...@babel/preset-env中useBuiltIns属性用来设置按需加载垫片 @babel/plugin-transform-runtime提供了一种污染全局情况下使用垫片方式。

1.2K30

首屏体验提升之不一样的代码拆分+预加载实现应用性能及体验兼得

如图是我们项目中实际出现的场景之一: image.png image.png 由于资源加载存在近4s的耗时,组件渲染被延迟,这种情况下,便导致了我们虽然通过减少了首屏资源提升了首屏加载体验,但却让用户在后续使用过程中出现了体验断层...且这种情况并非网络不好或资源过大等极端情况下才会出现,随着应用使用量的上升,该情况会多次出现,影响用户体验,以下为网络波动的场景之一: 那么如果要保证一个 spa 应用的后续交互体验,要么就是拆包,...但是有个问题是模块过多时,侵入式的代码也变多了,且看起来重复且冗余,同时被预加载的模块并没有进行统一管理,后续维护也不会很方便,直观。...: 构建流程图: 构建 通过 dynamic[8] API 及 webpack plugin[9] 对模块进行拆包的同时,还会将preloadKey(开发者自定义的预加载标识)、import-module-url...真实用户场景打开 Modal( Modal 基于 webpack module federation 引入)体验模拟 无预加载:点击按钮后,拉取对应的拆包资源及远程 module federation

32720

使用 Preload&Prefetch 优化前端页面的资源加载「建议收藏」

问题的原因也很明显,由于背景使用了视觉特意设计的图片,优惠券列表展开需要去加载图片,背景渐显的过程实际上就是图片加载的过程;当网速慢的时候,这个问题会更加明显。那么,怎样解决这个问题呢?...使用js代码对图片进行预加载 preloadImage() { const imgList = [ require('@/assets/imgs/error.png'),...,优惠券列表渲染就可以直接从缓存获取。...但一般情况下我们希望把预加载范围扩得太大,所以需要通过fileBlacklist或fileWhitelist进行控制。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.1K31

使用 Preload&Prefetch 优化前端页面的资源加载

问题的原因也很明显,由于背景使用了视觉特意设计的图片,优惠券列表展开需要去加载图片,背景渐显的过程实际上就是图片加载的过程;当网速慢的时候,这个问题会更加明显。那么,怎样解决这个问题呢?...使用js代码对图片进行预加载 preloadImage() { const imgList = [ require('@/assets/imgs/error.png'),...,优惠券列表渲染就可以直接从缓存获取。...网页向浏览器提供一组预取提示,并在浏览器完成当前页面的加载后开始静默地拉取指定的文档并将其存储在缓存中。当用户访问其中一个预取文档,便可以快速的从浏览器缓存中得到。...但一般情况下我们希望把预加载范围扩得太大,所以需要通过fileBlacklist或fileWhitelist进行控制。

1.2K60

假如用王者荣耀的方式学习webpack

派克为人低调,喜出现在大众视野,他是需求人性启迪的理想主义者,信奉着唯有光荣进化才能实现人类的全部潜能。...: 当配置了多入口文件并且想输出不同chunk应该对filename使用占位符来保证文件名称的唯一性。...(webpack本身只能处理js文件。loader可以将其它文件类型转换为webpack能够处理的模块,并对其进行打包或其它操作。它与modules模块配合使用,通过配置module.rules实现。...ES2015+ 代码,然后使用 Babel 转译为 ES5 buble-loader 使用 Bublé 加载 ES2015+ 代码,并且将代码转译为 ES5 traceur-loader 加载 ES2015...CSS 代码 less-loader 加载和转译 LESS 文件 sass-loader 加载和转译 SASS/SCSS 文件 postcss-loader 使用 PostCSS 加载和转译 CSS/

61200
领券