当前位置: 首页 > 知识库问答 >
问题:

javascript - vue-cli4使用terser-webpack-plugin时exclude不生效?

解河
2024-01-31

关于vue-cli4使用terser-webpack-plugin时, exclude不生效

我的目的就是想让utils.js文件下 console.* 都能打印 其余文件的console移除

  1. vue-cli4本自带terser,使用过exclude,发现打印出来没有exclude于是安装了插件
// 原始代码config.when(process.env.NODE_ENV === 'production', (config) => {      config.optimization.minimizer('terser').tap((args) => {        args[0].terserOptions.compress.drop_console = true        args[0].terserOptions.compress.drop_debugger = true        args[0].terserOptions.compress.pure_funcs = ['console.log']        args[0].terserOptions.output = {          comments: false,        }        return args      })
  1. 接着自行升级了cli和安装terser-webpack-plugin

"@vue/cli-service": "~4.5.19",
"terser-webpack-plugin": "~4.2.3",

config.optimization.minimizer('terser').use(TerserPlugin, [        {          minify: TerserPlugin.esbuildMinify,          terserOptions: {            compress: {              drop_console: true,              drop_debugger: true,            },            mangle: {              safari10: true, // 解决ie,safari10.1不支持ES6语句            },          },          exclude: /\/utils/,        },      ])

已经添加了exclude,utils.js 文件不做处理,但是正式环境还是没有打印

不知道哪个环境出了问题

共有1个答案

鞠子轩
2024-01-31

根据你的描述,你正在使用Vue CLI 4和Terser Webpack Plugin来压缩你的代码,并试图排除utils.js文件。然而,你发现exclude选项并没有生效。

首先,确保你的webpack配置正确地指向了terser-webpack-plugin。你需要确认在vue.config.js或webpack配置文件中正确地引用了该插件。

你的代码看起来应该是正确的,但有一些可能的问题:

  1. 路径问题:确保exclude使用的正则表达式是正确的,并且确实指向了utils.js文件。在你的例子中,你使用了exclude: /\/utils/,这可能会匹配到其他包含"utils"的路径。如果你的utils.js文件在根目录下,你可能需要使用exclude: /utils\.js$
  2. 版本问题:你可能需要检查你的@vue/cli-serviceterser-webpack-plugin的版本是否兼容。有时候,新版本的插件可能不与旧版本的CLI兼容。
  3. 插件配置:确认TerserPlugin的配置是否正确。你可以尝试打印出TerserPlugin的配置以检查是否正确。
  4. 重新安装依赖:有时候,重新安装项目依赖可以解决一些奇怪的问题。尝试删除node_modules目录和package-lock.json文件,然后运行npm installyarn install
  5. 检查其他插件或加载器:有时候,其他webpack插件或加载器可能会影响TerserPlugin的行为。确认没有其他插件或加载器修改或覆盖了TerserPlugin的配置。

如果以上方法都不能解决问题,你可能需要更详细地检查你的webpack配置,或者考虑在StackOverflow或Vue社区中寻求更具体的帮助。

 类似资料:
  • 现有一个基于vue-cli3和webpack4的vue2项目,我使用vue-cli-service inspect命令导出webpack配置后,minimizer部分如代码所示: 可以看到,里面并没有new TerserPlugin(),但是里面确实又有terserOption,请问下大佬们这是不是vue-cli内置了terser插件,如果是内置插件的话为什么不会被inspect导出来呢,而且如果

  • info 这是一个基于 vue 的 webpack 插件,为单页和多页应用生成 skeleton,提升首屏展示体验。 如果您还不了解 skeleton,可以参考App Skeleton 介绍一文。 github 地址:https://github.com/lavas-project/vue-skeleton-webpack-plugin 问题背景 参考饿了么的 PWA 升级实践一文,我们希望在构建

  • info 这是一个基于 vue 的 webpack 插件,为单页和多页应用生成 skeleton,提升首屏展示体验。 如果您还不了解 skeleton,可以参考App Skeleton 介绍一文。 github 地址:https://github.com/lavas-project/vue-skeleton-webpack-plugin 问题背景 参考饿了么的 PWA 升级实践一文,我们希望在构建

  • 本文向大家介绍使用vue cli4.x搭建vue项目的过程详解,包括了使用vue cli4.x搭建vue项目的过程详解的使用技巧和注意事项,需要的朋友参考一下 cli-4.x已经发布好久了,斟酌了好久,还是决定将原来的cli-2.x升级到4.x,详细的升级过程可以戳这里 1、创建项目 vue create vuetest   2、选择配置方式 这里我选择的是手动配置(使用↑ ↓箭头切换,Enter

  • 我有一个webpack配置,当我直接调用webpack时,它会生成react包。由于我想合并热重新加载,所以我需要在端口3000上运行的development express服务器(服务APIendpoint)旁边运行webpack dev服务器 webpack.dev.config.js dev-server.js package.json脚本 如果我跑了 结果是一个新的js包和html:dis

  • el-table 里的输入框实现递增输入,正常输入没有问题,当删掉其中一个值后,再输入符合条件的也不生效了,不知道是什么原因