您好,登录后才能下订单哦!
请求超时!
请点击 重新获取二维码这篇文章主要讲解了webpack同时输出压缩和未压缩的文件的实现方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
有的时候我们想要同时生成压缩和未压缩的文件,比如我们构建 lib 包的时候,我们希望用户能够使用压缩过后的代码文件作为 cdn 文件,最简单的一个方式就是通过指定环境变量,比如指定 MINIFY,如下:
const path = require('path') const isMinify = process.env.MINIFY /** * @type {import('webpack').Configuration} */ const config = { entry: { index: './src/index.js' }, output: { filename: isMinify ? '[name].min.js' : '[name].js', path: path.join(__dirname, 'dist') }, devtool: 'cheap-source-map', optimization: { minimize: isMinify ? true : false } } module.exports = config
我们在使用的时候通过指定环境变量就可以打包成不同的版本:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build:min": "MINIFY=1 webpack --config=webpack.config.js", "build": "webpack --config=webpack.config.js" }
不过这样的缺点就是我们需要运行两次。
第二个方法是安装unminified-webpack-plugin,通过这个插件可以生成没有压缩的文件:
const path = require('path') const UnminifiedWebpackPlugin = require('unminified-webpack-plugin'); /** * @type {import('webpack').Configuration} */ const config = { entry: { index: './src/index.js', }, output: { filename: '[name].min.js', path: path.join(__dirname, 'dist') }, devtool: 'cheap-source-map', plugins: [ new UnminifiedWebpackPlugin({}) ] } module.exports = config
不过这个有个缺点就是未压缩的文件没有 sourcemap。
第三种方法通过指定多个打包入口,然后手动指定压缩插件(uglifyjs、terser等)压缩哪些文件,如我们指定 index.min.js
这个文件才需要压缩,配置如下:
const path = require('path') const TerserWebpackPlugin = require('terser-webpack-plugin'); /** * @type {import('webpack').Configuration} */ const config = { entry: { index: './src/index.js', 'index.min': './src/index.js' }, output: { filename: '[name].js', path: path.join(__dirname, 'dist') }, devtool: 'cheap-source-map', optimization: { minimize: true, minimizer: [ new TerserWebpackPlugin({ include: /min/, sourceMap: true }) ] } } module.exports = config
关键点如下:
这个时候生成的就完美了。
看完上述内容,是不是对webpack同时输出压缩和未压缩的文件的实现方法有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
深圳SEO优化公司南京品牌网站设计哪家好吴忠设计公司网站公司喀什网站优化按天收费推荐汉中外贸网站制作推荐怀化外贸网站设计报价和县百度seo多少钱南阳网站设计哪家好北京网站推广系统报价霍邱网络推广价格许昌外贸网站制作价格宁德网站优化按天扣费黄冈网站优化按天计费推荐喀什百度竞价包年推广平顶山优秀网站设计多少钱广安SEO按效果付费锦州网站优化按天收费报价淮北SEO按天计费价格黔西南如何制作网站价格松原百度爱采购多少钱塘坑百度网站优化排名百色建站哪家好宁波优秀网站设计报价营口高端网站设计报价云浮优化哪家好珠海网页设计推荐烟台百姓网标王推广哪家好民治网站seo优化多少钱济源网站制作价格绵阳网站优化按天计费报价北京网站推广工具推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运