现有一个基于vue-cli3和webpack4的vue2项目,我使用vue-cli-service inspect命令导出webpack配置后,minimizer部分如代码所示:
minimizer: [ { options: { test: /\.m?js(\?.*)?$/i, chunkFilter: () => true, warningsFilter: () => true, extractComments: false, sourceMap: false, cache: true, cacheKeys: defaultCacheKeys => defaultCacheKeys, parallel: true, include: undefined, exclude: undefined, minify: undefined, terserOptions: { compress: { 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 }, mangle: { safari10: true } } } } ]
可以看到,里面并没有new TerserPlugin(),但是里面确实又有terserOption,请问下大佬们这是不是vue-cli内置了terser插件,如果是内置插件的话为什么不会被inspect导出来呢,而且如果是这种没有new TerserPlugin()的情况,我该如何修改这个插件的配置或者删除这个插件以更换别的插件呢?
从你给出的代码中可以看出,Vue CLI 3 确实内置了 TerserWebpackPlugin,而且它被添加到 webpack 的配置中,这是默认行为,你无需手动创建 TerserPlugin 实例并将其添加到 webpack 配置中。
至于 terserOptions
,这些是 TerserPlugin 的配置选项,你可以通过修改这些选项来改变 TerserPlugin 的行为。
如果你想修改这个插件的配置或者删除这个插件以更换别的插件,你可能需要创建一个新的插件,并且修改或覆盖内置的 TerserWebpackPlugin。但是,请注意,你不能直接从内部的 TerserWebpackPlugin 中删除或替换它,因为它是在 CLI 内部使用的。
你可以创建一个新的 webpack 插件,并使用 processModule
和 shouldTransform
方法来控制哪些模块应该通过 Terser 进行转换。例如:
const TerserPlugin = require('terser-webpack-plugin');class CustomTerserPlugin extends TerserPlugin { shouldTransform(module, { isScript }) { // 在这里添加你的自定义逻辑 // 例如,你可能想要排除某些模块 // return !module.name.includes('your-module-name'); }}module.exports = { configure: (webpackConfig, { env, paths }) => { return Object.assign(webpackConfig, { optimization: Object.assign(webpackConfig.optimization, { minimizer: [new CustomTerserPlugin], }), }); },};
然后,在你的 vue.config.js
文件中使用这个新的插件:
module.exports = { configureWebpack: require('./custom-webpack'),};
请注意,这只是一个例子,你需要根据你的实际需求来修改这个插件的行为。
从源码可以看到,执行npm run build命令后,先创建Service类的实例而后再调用其run方法,而run方法执行的则是build文件下index.js中注册的一个异步函数,一直追踪下去可以看到最终返回是在这里: 可以看到其最终调用了一个通过const webpack = require("webpack")引入的webpack(),但点击跳转之后是一个types.d.ts文件,从这之后我
vue 2 项目 terser-webpack-plugin 去除 console失效? vue.config.js 的配置?
关于vue-cli4使用terser-webpack-plugin时, exclude不生效 我的目的就是想让utils.js文件下 console.* 都能打印 其余文件的console移除 vue-cli4本自带terser,使用过exclude,发现打印出来没有exclude于是安装了插件 接着自行升级了cli和安装terser-webpack-plugin "@vue/cli-servic
vue如何实现页面装修的
Awesome Vue-Cli3 Example �� (Vue Webpack Vuex Vue-router Element-ui/...) out of the box �� Awesome example for rapid Vue.js development using vue-cli3. English | 中文 Goal and Philosophy To facilitate d
本文向大家介绍Vue CLI3 如何支持less的方法示例,包括了Vue CLI3 如何支持less的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Vue CLI3 如何支持less的方法示例,分享给大家,具体如下: 安装方式: 或者 大家在编写 .vue 文件的 style 的时候多会选择采用预编译样式来加速开发效率 这里我们提一下,如何在新版 Vue CLI 中增加对 less