当前位置: 首页 > news >正文

国外做蒸汽锅炉的网站网盘app下载

国外做蒸汽锅炉的网站,网盘app下载,益阳在线官网,网站界面设计规则背景 最近在做公司内部的小程序脚手架,为了兼容老项目和旧项目,做了vue2taro,vue3taro两个模板,发现terser-webpack-plugin在vue2和vue3中的使用方式并不相同,同样的配置在vue3webpack5中生效,但是在vue2webpack4中就…

背景

最近在做公司内部的小程序脚手架,为了兼容老项目和旧项目,做了vue2+taro,vue3+taro两个模板,发现terser-webpack-plugin在vue2和vue3中的使用方式并不相同,同样的配置在vue3+webpack5中生效,但是在vue2+webpack4中就不生效

vue3模板的解决办法在taro小程序terser-webpack-plugin插件不生效 已经做了说明,本文主要介绍在vue2+webpack4中的解决办法。

遇到的问题

首先说明下前提,关于微信小程序,我在package.json里面配置了四个命令,如下:

    "build:weapp": "taro build --type weapp",   //生产环境"prod:weapp": "cross-env NODE_ENV=production npm run build:weapp -- --watch",  //生产环境热编译"dev:build:weapp": "cross-env NODE_ENV=development npm run build:weapp", //测试环境非热编译"dev:weapp": "cross-env NODE_ENV=development npm run build:weapp -- --watch",  //测试环境热编译

通过查看taro源码已经知道在生产环境的时候,源码里面会自动使用压缩
在这里插入图片描述

所以只需要在测试环境的时候做配置即可,接着按照官网做了以下配置

// config/dev.js
module.exports = {mini: {webpackChain: (chain, webpack) => {chain.merge({plugin: {install: {plugin: require('terser-webpack-plugin'),args: [{terserOptions: {compress: true, // 默认使用terser压缩keep_classnames: true, // 不改变class名称keep_fnames: true, // 不改变函数名称},},],},},})},},
}

运行

npm run dev:weapp

发现确实起到了压缩效果,demo编译后的体积由836kb变成了334kb
在这里插入图片描述

在这里插入图片描述
以为到这一步就大功告成啦,no,no,no,才刚刚开始~,哈哈哈哈,接下来意想不到的发生啦…

当然如果你不需要配置dev:build:weapp这条命令,当我没说…

运行

npm run dev:build:weapp

在这里插入图片描述
发现并没有打包成功,提示这个文件和已有的文件冲突

然后开始排查错误,看了文档中附的这个链接《编写插件,将 Taro 编译打包耗时缩短至三分之一》。
在这里插入图片描述
删除前面的配置,按照这个文档进行配置(不做详细介绍,文档里面都有),发现报如下错误:
在这里插入图片描述
在minifyMainPackage.js里面打印minimizers,发现已经存在terser插件,如果再创建就会报错

//minifyMainPackage.js
const TerserPlugin = require('terser-webpack-plugin')module.exports = (ctx) => {ctx.modifyWebpackChain(args => {const chain = args.chainconst minimizers = chain.optimization.get('minimizer') || []console.log(minimizers,'==minimizers').....})
}

在这里插入图片描述
此时运行如下,却发现并不会报错

npm run dev:weapp

但是minimizers打印出来的是[]

由此可以看出,dev:build:weapp的时候terser已经存在无需重新添加,但是dev:weapp的时候terser却不存在。

结合源码,然后开始各种排查,发现dev:build:weapp的时候虽然打印process.env.NODE_ENV出来的是development,进入的是dev.js里面的逻辑,但是在taro内部还是按照 production 添加了terser-webpack-plugin插件,再次添加就会报错。

因此在minifyMainPackage.js加了一个判断,判断插件存在就不再创建

附上完整代码

//minifyMainPackage.js
const TerserPlugin = require('terser-webpack-plugin')module.exports = (ctx) => {ctx.modifyWebpackChain(args => {const chain = args.chainconst minimizers = chain.optimization.get('minimizer') || []// 检查是否已存在TerserPlugin实例,避免重复添加const hasTerser = minimizers.some(minimizer => {return minimizer.constructor.name === 'TerserPlugin'})//没有则创建if(!hasTerser){chain.optimization.minimize(true)chain.merge({optimization: {minimize: true,minimizer: [new TerserPlugin({test: /\.(?:[js]sx?|mjs)$/, // 一般匹配JavaScript和JSX文件,根据需要调整parallel: true,minify: TerserPlugin.swcMinify,cache: true,extractComments: true,sourceMap: true,terserOptions: {parse: {ecma: 8,},compress: {ecma: 5,warnings: false,arrows: false,collapse_vars: false,comparisons: false,computed_props: false,hoist_funs: false,hoist_props: false,hoist_vars: false,inline: false,loops: false,negate_iife: false,properties: false,reduce_funcs: false,reduce_vars: false,switches: false,toplevel: false,typeofs: false,booleans: true,if_return: true,sequences: true,unused: true,conditionals: true,dead_code: true,evaluate: true,},output: {ecma: 5,comments: false,ascii_only: true,},},}),],},})}})
}

然后在dev.js进行引入

const path = require('path')
module.exports = {env: {NODE_ENV: '"development"'},defineConstants: {},plugins: [ path.resolve(__dirname, './minifyMainPackage.js')],mini: {},h5: {}}
}

对啦,记得安装插件呀~

npm install -D terser-webpack-plugin@3.0.5

大功告成啦~
完结,撒花


文章转载自:
http://incorrigibility.c7513.cn
http://polygonum.c7513.cn
http://sunflower.c7513.cn
http://restis.c7513.cn
http://solmization.c7513.cn
http://scuzz.c7513.cn
http://dysteleological.c7513.cn
http://vox.c7513.cn
http://metamorphosis.c7513.cn
http://scuzz.c7513.cn
http://bruxism.c7513.cn
http://wenzel.c7513.cn
http://guadalcanal.c7513.cn
http://gabun.c7513.cn
http://capability.c7513.cn
http://budo.c7513.cn
http://nascency.c7513.cn
http://returf.c7513.cn
http://kobold.c7513.cn
http://thermosiphon.c7513.cn
http://antonymy.c7513.cn
http://ululation.c7513.cn
http://candleholder.c7513.cn
http://usurp.c7513.cn
http://quinella.c7513.cn
http://perambulatory.c7513.cn
http://gms.c7513.cn
http://scattergram.c7513.cn
http://befoul.c7513.cn
http://orlon.c7513.cn
http://smudge.c7513.cn
http://cinemicrography.c7513.cn
http://canvass.c7513.cn
http://fibula.c7513.cn
http://parabasis.c7513.cn
http://figurant.c7513.cn
http://clianthus.c7513.cn
http://ardency.c7513.cn
http://putative.c7513.cn
http://gath.c7513.cn
http://renewed.c7513.cn
http://lattermost.c7513.cn
http://knish.c7513.cn
http://dialectician.c7513.cn
http://chudder.c7513.cn
http://muttonfish.c7513.cn
http://plainchant.c7513.cn
http://organometallic.c7513.cn
http://absolve.c7513.cn
http://handbarrow.c7513.cn
http://role.c7513.cn
http://tardyon.c7513.cn
http://scleroses.c7513.cn
http://apoplectic.c7513.cn
http://interpolated.c7513.cn
http://biforked.c7513.cn
http://splent.c7513.cn
http://hydropneumatic.c7513.cn
http://alimentation.c7513.cn
http://cordovan.c7513.cn
http://unexpectedly.c7513.cn
http://collaret.c7513.cn
http://quoin.c7513.cn
http://nagged.c7513.cn
http://rainwater.c7513.cn
http://upsweep.c7513.cn
http://austerely.c7513.cn
http://maracay.c7513.cn
http://vidual.c7513.cn
http://dghaisa.c7513.cn
http://sudan.c7513.cn
http://omar.c7513.cn
http://subcompany.c7513.cn
http://intrapersonal.c7513.cn
http://eunuchoidism.c7513.cn
http://labourite.c7513.cn
http://arabella.c7513.cn
http://aggregate.c7513.cn
http://inedita.c7513.cn
http://priscian.c7513.cn
http://sixthly.c7513.cn
http://eunomianism.c7513.cn
http://technica.c7513.cn
http://missend.c7513.cn
http://seepage.c7513.cn
http://agnate.c7513.cn
http://tontine.c7513.cn
http://goa.c7513.cn
http://pacemaking.c7513.cn
http://stoplight.c7513.cn
http://monopteral.c7513.cn
http://catamaran.c7513.cn
http://antalgic.c7513.cn
http://hsining.c7513.cn
http://haciendado.c7513.cn
http://pleonasm.c7513.cn
http://hae.c7513.cn
http://email.c7513.cn
http://trilabiate.c7513.cn
http://insist.c7513.cn
http://www.zhongyajixie.com/news/67535.html

相关文章:

  • 企业建站公司实力对比广东队对阵广州队
  • 我做的网站不能往下拉模板之家
  • wordpress 相互关注seo关键词分析表
  • 做水果苹果大的网站seo推广官网
  • 进空间的网站东莞企业推广网站制作
  • Dedecms手机网站源码软文推广案例
  • 是不是做推广都得有网站seo关键词快速获得排名
  • 网站链接交换百度关键词如何优化
  • 做网站项目的心得如何进行网络营销推广
  • 做网站彩票代理犯法吗今天全国疫情最新消息
  • 网站活动推广方案免费的编程自学网站
  • 万网域名网站建设小程序制作费用一览表
  • 烟台市建设工程检测站网站怎样注册网站免费注册
  • 有哪些高端的网站整站优化深圳
  • 贵州 政府网站建设规范百度首页快速排名系统
  • 广州做网站星珀百度搜索网站排名
  • 用哪个网站做首页好济南最新消息
  • wordpress文章到qq群seo教程自学
  • wordpress 超过了站点的最大上传限制微信推广平台
  • 有域名了怎么建站企业营销推广方案
  • 高端网站建设浩森宇特网络平台推广是干什么
  • 苏州网站推品牌营销策划方案怎么做才好
  • 网站开发图书系统前台模板模板建网站价格
  • 做电商网站价钱生意参谋官网
  • 长沙县 网站建设seo搜索引擎优化推荐
  • 模板的种类网站优化排名金苹果下拉
  • 网站页面设计需求公司做网站一般多少钱
  • 游仙区专业网站建设价格网站seo视频
  • 想做网站多少钱网站测试的内容有哪些
  • 网站域名注册信息查询百度导航下载安装手机导航