解决webpack-bundle-analyzer的问题大坑

 更新时间:2023年06月08日 09:12:41   作者:IT博客技术分享  
这篇文章主要介绍了解决webpack-bundle-analyzer的问题大坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

webpack-bundle-analyzer的问题大坑

关于webpack-bundle-analyzer的问题大坑,会导致,打包后端口占用,复制一份代码在起一个服务,报错端口占用,无法启动。

报错如下

解决办法

1.首先引入webpack-bundle-analyzer模块

安装命令:npm install –save-dev webpack-bundle-analyzer

2.在webpack中的代码配置 (vueCli3.0 举例)

先说正常的流程的步骤:

2.1、在vue.config.js中进行配置

chainWebpack: config => {
    config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
}

2.2、在package.json中配置(或直接使用npm run build --report) 

"scripts": {
    "analyz": "NODE_ENV=production npm_config_report=true npm run build"
}

2.3、 只配置生产环境的打包

config.when(process.env.NODE_ENV === 'production', config => {
    config.plugin('webpack-bundle-analyzer').use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
})

2.4、执行打包命令(会在浏览器自动打开http://127.0.0.1:8888) 

npm run bulid

如果8888端口被占用,则提示打包失败。

2.5、下面来说说端口被占用的处理方法:

首先要在vue.conf.js里

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
    new BundleAnalyzerPlugin({
            analyzerMode: 'server',
            analyzerHost: '127.0.0.1',
            analyzerPort: 8889,
            reportFilename: 'report.html',
            defaultSizes: 'parsed',
            openAnalyzer: true,
            generateStatsFile: false,
            statsFilename: 'stats.json',
            statsOptions: null,
            logLevel: 'info'
        })
}
if (config.build.bundleAnalyzerReport) {
    const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
    webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}

我是这么判断的:

// 生产环境相关配置
		if (isProduction) {
			config.plugins.push(
				new BundleAnalyzerPlugin({
					analyzerMode: 'server',
					analyzerHost: '127.0.0.1',
					analyzerPort: 8880,
					reportFilename: 'report.html',
					defaultSizes: 'parsed',
					openAnalyzer: true,
					generateStatsFile: false,
					statsFilename: 'stats.json',
					statsOptions: null,
					logLevel: 'info'
				}),
            )
      }

复制一份code再起一个服务的时候,只需要改:analyzerPort: 8880,  就可以了。

好啦,这样在webpack里基本的配置就完成了,而且你npm run build 的时候就会自动打开网址,显示你的打包后的js文件组成和大小。

最后就是引入和使用了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue项目打包开启gzip压缩具体使用方法

    vue项目打包开启gzip压缩具体使用方法

    这篇文章主要为大家介绍了vue项目打包开启gzip压缩具体使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • vue篇之事件总线EventBus使用示例详解

    vue篇之事件总线EventBus使用示例详解

    这篇文章主要为大家介绍了vue篇之事件总线EventBus使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Vue执行流程及渲染示例解析

    Vue执行流程及渲染示例解析

    这篇文章主要为大家介绍了Vue执行流程及渲染解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Vue利用Blob下载原生二进制数组文件

    Vue利用Blob下载原生二进制数组文件

    这篇文章主要为大家详细介绍了Vue利用Blob下载原生二进制数组文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • vue使用动画实现滚动表格效果

    vue使用动画实现滚动表格效果

    这篇文章主要为大家详细介绍了vue使用动画实现滚动表格效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue3中使用router路由实现跳转传参的方法

    vue3中使用router路由实现跳转传参的方法

    这篇文章主要介绍了vue3中使用router路由实现跳转传参的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Vue2实时监听表单变化的示例讲解

    Vue2实时监听表单变化的示例讲解

    今天小编就为大家分享一篇Vue2实时监听表单变化的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • vue-cli之引入Bootstrap问题(遇到的坑,以及解决办法)

    vue-cli之引入Bootstrap问题(遇到的坑,以及解决办法)

    这篇文章主要介绍了vue-cli之引入Bootstrap问题(遇到的坑,以及解决办法),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue2+Elementui Dialog实现封装自定义弹窗组件

    Vue2+Elementui Dialog实现封装自定义弹窗组件

    在日常的管理系统界面中,我们写的最多的除了列表表格之外,就是各种弹窗组件,本文就来为大家详细介绍一下Vue2如何结合Elementui Dialog实现封装自定义弹窗组件,希望对大家有所帮助
    2023-12-12
  • 使用vuex的时候,出现this.$store为undefined问题

    使用vuex的时候,出现this.$store为undefined问题

    这篇文章主要介绍了使用vuex的时候,出现this.$store为undefined问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论