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

javascript - @vue/cli 4.5如何移除指定插件?

齐运诚
2023-11-08

更新:
最终结果是该插件有依赖关系,想要删除html插件,需要连续删除多个,下面列出

config.plugins.delete('preload');config.plugins.delete('prefetch');config.plugins.delete('html');

分割线-----------------------------------------------------------------------------------------

module.exports = {  configureWebpack: {    devtool: 'none', // 禁用生成.map文件    optimization: {      splitChunks: false, // 阻止抽离公共模块    },  },  chainWebpack: (config) => {    config.plugins.delete('copy');    config.plugins.delete('html');    config.plugins.delete('preload');  },};

执行config.plugins.delete('preload')后,报错TypeError: Cannot read properties of undefined (reading 'tap')
错误来源是\node_modules\@vue\preload-webpack-plugin\src\index.js:115:65
也就是,我已经调用了删除该插件,但还是执行到了preload-webpack-plugin插件中,咋回事呢?删除无效吗?

共有2个答案

贝德辉
2023-11-08

想去掉打包时生成的index.html和favicon.ico文件
可以build后再删掉就可以了
方案1、package.json scripts 中build命令后面增加 && rimraf ./dist/index.html && rimraf ./dist/favicon.ico
方案2、package.json scripts 中新增以下命令 "postbuild": "rimraf ./dist/index.html && rimraf ./dist/favicon.ico"
上述两种方法都用到了rimraf,需要安装依赖 npm i -g rimraf

寿鸣
2023-11-08

在 Vue CLI 4.x 中,如果你想要移除特定的插件,你需要明确地指定你想要移除的插件的名称。对于你的情况,你想要移除 'html' 插件。

不幸的是,直接在 vue.config.js 文件中删除或修改插件是不可能的,因为 Vue CLI 在构建过程中会直接使用插件的默认配置,不会考虑你的自定义配置。

但是,你可以尝试以下方法:

  1. 自定义插件:创建一个自定义插件来替代 HTML 插件。这个插件可以什么都不做,这样在构建过程中,它就不会生成任何文件。
// plugins/HtmlWebpackPlugin.jsconst HtmlWebpackPlugin = require('html-webpack-plugin');module.exports = {  plugins: [    new HtmlWebpackPlugin({      // 你可以在这里设置你想要传递给 HTML 插件的任何选项,但是不要包含 'chunks' 和 'template'    })],};

然后在你的 vue.config.js 中引用这个插件:

// vue.config.jsmodule.exports = {  configureWebpack: {    plugins: [require('./plugins/HtmlWebpackPlugin')],  },};
  1. 直接修改插件配置:你可以尝试直接修改 HTML 插件的配置以改变其行为。这需要你有对 HTML 插件源码的深入了解。你需要在你的 vue.config.js 中覆盖 HTML 插件的默认配置:
// vue.config.jsmodule.exports = {  configureWebpack: {    plugins: [      new HtmlWebpackPlugin({        chunks: [], // 不要包含 'index' 和 'favicon' 块        template: undefined, // 移除模板选项,这样就不会生成 index.html 和 favicon.ico      })],  },};

请注意,这些方法都可能会影响到你的应用程序的行为,因此在使用这些方法之前,你应该确保你理解了这些选项的含义和可能的影响。

 类似资料:
  • 如何在Gradle Scala项目中指定Scala版本? 官方留档声明依赖项用于获取编译器。 这是否意味着将使用Scala 2.11.1?

  • 通过删除当前版本重装新的插件来升级插件。 通过 remove 命令来删除插件: $ bin/kibana-plugin remove x-pack 您也可以通过手动删除 plugins/ 目录下的插件子目录来手动删除插件。 NOTE:删除插件之后将会在下一次 Kibana 启动的时候触发一次 “优化(optimize)” 动作,可能会使启动有点延迟。

  • Javadoc工具有一个名为“packagename”的命令行选项,允许您指定要记录的包名称。maven javadoc插件支持这个论点吗? 似乎maven支持所有选项作为配置属性,但Packagename不是一个选项,它是一个命令行参数,我看不到它在maven javadoc插件页面上列出。 maven插件确实支持subpackages选项,但这是不同的(它是递归的,而packagenames参

  • 我曾有意把检查程序执行和修复错误分割开来,但是当然,调试也意味着移除 bug。理想状况下,当你完美的发现了错误以及它的修复方法时,你会对代码有完美的理解,并且有一种顿悟(啊哈!)的感觉。但由于你的程序会经常使用其他不具有可视性的、没有一致性注释的系统(比如第三方库),所以完美是不可能的。在其他情况下,可能代码是如此的复杂以至于你的理解可能并不完美。 在修复 bug 时,你可能想要做最小的改变来修复

  • 从钱包中移除一个账户。 调用: web3.eth.accounts.wallet.remove(account); 参数: account - String|Number: 账户地址,或在钱包中的索引 返回值: Boolean: 移除成功则返回true,否则返回false 示例代码: web3.eth.accounts.wallet; > Wallet { 0: {...}, "

  • 问题内容: 我正在尝试将Timelion插件用于kibana。 我在elasticsearch中有一个数据集,其结构可能是这样的: 我想将字段显示为y轴和x轴,该怎么办? 我尝试了该功能,但此功能似乎将计数设置为默认值,而不是数据源中的“值”字段。 问题答案: Timelion将预定义的时间间隔用于其时间图。为了绘制“值”作为时间的函数,您可以将粒度设置为“自动”并使用以下字符串: 您也可以将粒度