webpack 配置遇到的坑

本文探讨了在SDK开发中,如何使用Webpack替代Rollup进行更精细化的样式管理。详细介绍了处理Less和CSSModule,解决ExtractTextPlugin兼容性问题,以及优化css-modules配置的全过程。

由于sdk中有对样式的依赖,所以从rollup改为了webpack 配置,同时sdk 需要比较精简,所以webpack的配置也是从简单

遇到的问题

一 less和css module

    由于sdk需要插入广告模块 所以必须保证类名不被污染,所以在插入时候需要用css module进行混淆

    具体用法

    1.1 安装依赖 

    npm i style-loader css-loader less less-loader -D

    1.2 配置webpack rules

    配置时候遇到的问题 webpcak 是从后往前解析的,所以less-loader 要放到最后

    

    具体使用

    

二 ExtractTextPlugin、less-loader css-loader css module

    由于项目中用了css module 而且使用了less-loader css-loader等,所以在webpack配置中遇到了一些问题

    最开始配置是这样写的

    

    运行时总是抛出异常

    

    最开始以为是配置的问题,仔细的查看了文档,发现并不是这个的问题

    最后发现实际上是因为ExtraTextPlugin 这个插件和webpack的版本不一致导致的,因为webpack的版本是4.40,而ExtraTextPlugin这个插件的版本直接npm i 是稳定版本3.2

    所以需要升级ExtraTextPlugin 为最新的beat版本

    npm install extract-text-webpack-plugin@next

    

    至此,构建成功

三 css-module 配置

    由于sdk 的广告插入了很多样式,所以在css-loader 引入了css module 来避免变量名的污染,但是同时考虑到因为是移动端的sdk,移动端所用的css布局都是不一致的

    所以如果第三方引用的不是rem布局的话,支持reset样式覆盖也是可以的,css module 默认支持的是hash64的混淆,混淆后的类名特别长,所以想写短点

   

    异常报错如下 Invalid options object. CSS Loader has been initialised using an options object that does not match the API schema.

    

    翻了下文档,以及github,发现css-loader 因为版本的更新已经不支持这样直接写入localIdentName

    

    当前用的css-loader 是3.2

    

    采用css-loader 最新官方文档的写法,将配置包裹进modules的object里 ,done https://www.npmjs.com/package/css-loader    

    

四 打包时warning

WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/

 

    这是由于webpack build 配置的时候没有配置mode 模式 

    å

Webpack是一个现代化的打包工具,能够将前端项目中的各种资源文件(如JavaScript、CSS、图片等)进行打包、压缩和优化。但是在使用Webpack的过程中,也会遇到一些。以下是一些常见的Webpack版本点: 1. 版本兼容性问题:Webpack的不同版本之间可能存在一些差异,使用过程中需要注意版本兼容性问题。如果使用了不兼容的版本,可能会导致打包失败或者出现莫名其妙的错误。 2. 配置文件问题:Webpack配置文件是一个非常重要的部分,但是有时候配置文件的书写可能会有一些。比如,配置文件的路径问题,配置项的写法问题等等。在使用Webpack时,需要仔细阅读官方文档,避免配置文件的。 3. 插件加载问题:Webpack的插件非常丰富,可以通过插件来实现各种各样的功能。但是有时候,插件的加载过程可能会出现问题。比如,插件的版本不匹配、插件的配置不正确等等。在使用插件时,需要注意插件的依赖关系和使用方式。 4. 代码拆分问题:Webpack支持将项目代码拆分成多个模块,以便实现按需加载和提高性能。但是在进行代码拆分时,需要注意拆分策略和代码引用的方式。如果拆分不当,可能会导致打包后的代码出现错误或者功能不正常。 5. 资源路径问题:Webpack会根据配置文件中的output配置项来确定输出文件的路径。但是有时候,由于配置不正确或者路径问题,会导致资源文件的引用路径错误。在配置路径时,需要注意当前的路径和输出路径的关系。 在使用Webpack的过程中,要及时查阅官方文档、浏览社区论坛,并且多做实践来避免以上几个。只有熟练掌握Webpack的使用方法,才能更好地利用它来优化前端项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值