Vue2 项目小技巧

2023-11-01

生产环境去除 console.log

1. 安装webpack插件 uglifyjs-webpack-plugin (https://www.npmjs.com/package/uglifyjs-webpack-plugin)
2. 项目build 下面webpack.prod.config.js 文件中:
plugins: [
    new webpack.DefinePlugin({
      'process.env': env
    }),
    new UglifyJsPlugin({
      uglifyOptions: {
        compress: {
          warnings: false,
          dead_code: true, // 去除不可达代码
          drop_console: true, //drop_console  传递true以放弃对控制台的调用。*功能
          pure_funcs: ['console.log'] // pure_funces 禁用console.log函数
        }
      },
      sourceMap: config.build.productionSourceMap,
      parallel: true
]

条件编译修改Favicon图标

1.项目build 下面webpack.prod.config.js 文件中
// 添加如下代码
function getFavicon(){
  // favicon 自定义配置
  if(baseWebpackConfig.BRANCH_ENV === "XXX"){
    return 'src/assets/images/XXX.ico'
  }else if (baseWebpackConfig.BRANCH_ENV === "XX"){
    return 'src/assets/images/XX.ico'
  }else if(baseWebpackConfig.BRANCH_ENV === "X"){
    return 'src/assets/images/X.ico'
  }
}
const webpackConfig = merge(baseWebpackConfig, {
  module: {
    /*
      在utils.js已经配置好相关对extractTextPlugin的css抽取配置.通过extract: true即可触发

      如果要触发这个 extract 需要在plugins里面注册一下
    */
    ....
   },
   plugins: [
    ...
    new HtmlWebpackPlugin({
      // 生成html的名称
      filename: config.build.index,
      template: 'index.html',

      favicon:getFavicon(),

      // 这个配置项指js文件插入的位置
      // inject: true,
      // 额外的精简配置项
      // minify: {
      // 删去html中的注释项
      //   removeComments: true,
      // 折叠html中的空白字符
      //   collapseWhitespace: true,
      // 删去不必要的属性
      //   removeAttributeQuotes: true
      //   // more options:
      //   // https://github.com/kangax/html-minifier#options-quick-reference
      // },
      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
      // 控制生成的js插入位置的顺序(可以结合chunks进行选择)
      chunksSortMode: 'dependency',
      //修改:这里的common.js 是在 webpack.base.conf.js中做了代码切分所使用的名称
      // chunks:['manifest','vendor','common.js','app']
    }),
    ...
   ]
    

VUE项目条件编译

1.安装条件编译模块
npm i -D js-conditional-compile-loader
2.配置webpack
// webpack.base.conf.js文件中在rules配置编译条件如下
...
module: {
    rules: [
        {
	        test: /\.vue$/,
	        use:[
	          {
	            loader: 'vue-loader',
	            options: vueLoaderConfig
	          },
	          {
	            loader: 'js-conditional-compile-loader',
	            options: {
	                // isDebug: process.env.NODE_ENV === 'development',
	                isDebug : true,
	                isTEST: process.env.npm_config_test,
	            }
	          },
	        ]
        },
        {
            test: /\.(css|js)(\?.*)?$/,
            loader: 'js-conditional-compile-loader',
            options: {
            	// isDebug: process.env.NODE_ENV === 'development',
	            isDebug: true,
	            isTEST: process.env.npm_config_test,
	        }
        },
        //other rules
		...
    ]

}
3.项目中使用
//插件支持IFDEBUG和IFTRUE两个条件编译指令
//在js代码的任意地方以/*IFDEBUG或/*IFTRUE_xxx开头
//以FIDEBUG*/或FITRUE_xxx*/结尾
//中间是被包裹的js代码。xxx是在webpack中指定的条件属性名,如上面的isTEST。

{ name: '用户部门', value: 'usrDepartId' },
/* IFTRUE_isTEST */
{ name: '用户管理', value: 'id' },
/* FITRUE_isTEST */
{ name: '手机号', value: 'telphone' },

4.编译执行
## 可以看到用户管理
在终端输入 npm run dev –test

## 隐藏用户管理
在终端输入 npm run dev
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue2 项目小技巧 的相关文章

  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • JavaScript onTouch 不工作

    谁能告诉我为什么这个 onTouch 处理程序没有触发 var myDiv document getElementById existingContent var myButton a href log out a myDiv append
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 每 3 秒重复一次动画

    我正在使用 WOW js 和 animate css 现在我正在将 CSS 运行到 Infinite 我想知道如何让我的课程运行 3 秒停止并再次开始到无限 My html img src images fork png class for
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • TypeError: props.render 不是一个函数(React hook 形式)

    我将方法作为我用react hook form制作的形式的道具传递 当从react hook form添加控制器时 它给了我 TypeError props render不是一个函数 我在网上找不到任何解决方案 因此感谢任何帮助 impor
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 如何使输入字段和提交按钮变灰

    我想变灰这两件事 http doorsplit heroku com 歌曲输入字段和提交按钮 直到用户输入艺术家 有没有一种简单的方法可以通过 JQuery 来做到这一点 艺术家输入字段的id是 request artist 你可以这样做
  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 条件在反应本机生产中失败,但在开发中有效

    我创建了一个反应本机应用程序 我需要通过它进行比较 如果属实 就会执行死刑 问题是 该条件适用于 React Native 开发模式 而不适用于 React Native 生产版本 我使用 firebase 作为数据库 也使用 redux

随机推荐

  • winform开发框架常见的分层模式

    winform开发框架 基础的分层模式 可以分为UI层 User Interface BLL层 Business Logic Layer 业务逻辑层 DAL层 Data Access Layer 数据访问层 业务逻辑层 Business L
  • Java的异常入门

    概念 异常就是程序出现了不正常的情况 会导致JVM非正常停止 语法错误不算异常体系中 异常体系 编译时异常 运行时异常 虚拟机默认处理方式 代码中出现异常 程序会先判断有没有处理异常的代码 如果没有就会让调用者 虚拟机 处理 如果有就会走处
  • 各个公司面试汇总及规划(不再进入GIS行业)

    面试了几个大公司 均没过 但是值得骄傲的是 有大公司主动找我的简历后面试了 以前理都不理 值得庆贺 幸亏以前有个Offer UE4 C 25k税前 最低社保最低五险一金 相当于拿到手20K 其余的啥也没有 说一下几个公司的特点 主要是找不足
  • Swin-Transformer分类源码(已跑通colab)

    以下是本文参考的博客 大家有需要可以参考一下 1 Swin Transformer分割源码 已跑通 2 Swin Transformer分类源码 已跑通 3 swin transformer理解要点 一 概要 最近swin transfor
  • nginx 添加http header头,进行跨域设置(“add_header“ directive is not allowed)

    有时候我们想对某个项目进行跨域访问限制 不管是静态目录文件 还是其他 动态文件还好说 可以在代码里添加 如php header Access Control Allow Origin http www a com header Access
  • 基于MeSC与交感神经作用关系的压力水平与白发模拟系统和压力规划系统(更新中)

    基于MeSC与交感神经作用关系的压力水平与白发模拟系统和压力规划系统 一个本人的Matlab项目 可用于根据压力水平模拟白发水平 并根据工作情况给出白发量最少的合理的压力规划 这是本学期 数值计算方法 我做的一个期末大作业 模型还未完全更新
  • 方差分析anova

    方差分析 参考 http wiki mbalib com wiki E6 96 B9 E5 B7 AE E5 88 86 E6 9E 90 方差分析 Analysis of Variance 简称ANOVA 什么是方差分析 方差分析 ANO
  • 【Python八股文系列】:100个Python的面试/笔试高频考点

    Python的100个面试 笔试高频考点 本文主要整理了关于Python的面试 笔试的一些考点 可用于查漏补缺 涉及到的一些Python进阶知识 可以查看专栏学习 Python进阶 quad quad 1 解释型和编译型语言的区别 编译型语
  • 调用接口登录禅道_java调用api接口

    api 可以admin登录禅道 看下后台 二次开发 api 可以看下手册 http devel cnezsoft com book extension api intro 43 html http devel cnezsoft com bo
  • SVN使用教程

    摘自 SVN使用教程 地址 https www bilibili com video BV1k4411m7mP from search seid 1516107384812084869 spm id from 333 337 0 0 摘自
  • 笨办法学python 习题29

    习题29 在atom中的代码 people 20 cats 30 dogs 15 if people lt cats print too much cats if people gt cats print not many cats if
  • perl内置的DATA文件句柄

    当前 个人使用 最常见的perl脚本应用场景是针对文本的操作 编写perl脚本的时候 经常要手动创建一个待处理的文本 其实 perl内置了一个DATA文件句柄 就是为了perl脚本测试用的 mark 记录一下 usr local bin p
  • 使用IntelliJ IDEA 15和Maven创建Java Web项目

    1 Maven简介 相对于传统的项目 Maven 下管理和构建的项目真的非常好用和简单 所以这里也强调下 尽量使用此类工具进行项目构建 它可以管理项目的整个生命周期 可以通过其命令做所有相关的工作 其常用命令如下 mvn compile m
  • 深入浅出的webpack构建工具---devTool中SourceMap模式详解(四)

    阅读目录 一 什么是SourceMap 二 理解webpack中的SourceMap的eval inline sourceMap cheap module 三 开发环境和线上环境如何选择sourceMap 回到顶部 一 什么是SourceM
  • 【vue】vue2.5的使用

    简单的vue实例包含一个index html主页文件 一个vue js框架文件 一 标签数据绑定 引用实例中data数据 1 插值表达式 div msg div 2 v text data中属性名 div div 3 v html data
  • 零拷贝的实现原理

    文章目录 引入 DMA PageCache 零拷贝 mmap sendfile SG DMA 使用零拷贝技术的项目 引入 在Java架构直通车 Kafka介绍和高性能原因一节中 介绍了Kafka的Zero Copy技术 本文将深入探究一下Z
  • docker安装和基本操作

    简介 docker的三个基本概念 镜像 Image Docker 镜像可以看作是一个特殊的文件系统 除了提供容器运行时所需的程序 库 资源 配置等文件外 还包含了一些为运行时准备的一些配置参数 如匿名卷 环境变量 用户等 容器 Contai
  • 字符设备(可直接操作硬件--寄存器)

    字符设备驱动 驱动是为用户 应用层 服务的 操作硬件是过程 目的是用户 字符驱动在软件架构中的位置 设备号 当用户访问 文件节点的时候 比如 open dev u32无符号整型 可对应2 32个设备 其中高12bit称为主设备号 低20bi
  • idea连接Tomcat不支持发行版本问题

    会遇到这样的情况 解决方法是点击蓝色那个servlet01 第二步找到语言级别选项 降到可以使用的就行再点击应用确定 接下来就解决了发行版本不可用
  • Vue2 项目小技巧

    生产环境去除 console log 1 安装webpack插件 uglifyjs webpack plugin https www npmjs com package uglifyjs webpack plugin 2 项目build 下