我正在尝试配置webpack-bundle-analyzer的webpack.config。看这里。
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; module.exports = { plugins: [ new BundleAnalyzerPlugin() ] }
它只显示index.js、main.js和src文件夹。如何查看我的所有其他依赖项?
axr492tv1#
如果你使用的是Create React App,一个更简单的方法是转到package.json并编辑npm脚本。1.运行npm install --save-dev webpack-bundle-analyzer安装webpack-bundle-analyzer1.在"build"脚本命令的末尾添加--stats标志1.添加名为"analyze"的新脚本,如下所示
package.json
npm install --save-dev webpack-bundle-analyzer
"build"
--stats
"analyze"
"scripts": { ... "build": "react-scripts build --stats", "analyze": "webpack-bundle-analyzer build/bundle-stats.json", },
接下来,运行npm run build,然后运行npm run analyze。
npm run build
npm run analyze
i1icjdpr2#
首先npm install --save-dev webpack-bundle-analyzer其次,在webpack.config.js中添加一些配置这是我在config/webpack.config.js中使用create react app时的配置导入顶部的库
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
还要添加一些验证,以便构建脚本在部署到生产环境时不会出现问题
const withReport = process.env.npm_config_withReport
在插件中添加此代码
plugins:[ withReport ? new BundleAnalyzerPlugin() : '', ]
最后,在JSON包中添加一个新脚本
"report": "npm run build --withReport true"
在你的终端上运行“npm run report”。应该会自动出现webpack bundle analyzer UI
vql8enpb3#
通过这种方式,您可以配置webpack-bundle-analyzer而无需弹出您的React App1.通过执行npm install --save-dev progress-bar-webpack-plugin webpack-bundle-analyzer添加一些依赖项1.在React App的根目录下创建一个名为scripts的新文件夹。1.在scripts文件夹中创建一个新文件analyze_build_bundle.js,并在该文件中添加以下代码
webpack-bundle-analyzer
npm install --save-dev progress-bar-webpack-plugin webpack-bundle-analyzer
scripts
analyze_build_bundle.js
// script to enable webpack-bundle-analyzer process.env.NODE_ENV = 'production'; const webpack = require('webpack'); const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); const webpackConfigProd = require('react-scripts/config/webpack.config')( 'production' ); const ProgressBarPlugin = require('progress-bar-webpack-plugin'); webpackConfigProd.plugins.push(new BundleAnalyzerPlugin()); webpackConfigProd.plugins.push( new ProgressBarPlugin({ format: `analyzing... [:bar] [:percent] [:elapsed seconds] - :msg`, }) ); // actually running compilation and waiting for plugin to start explorer webpack(webpackConfigProd, (err, stats) => { if (err || stats.hasErrors()) { console.error(err); } });
1.在package.json文件中添加analyze-build-bundle命令,以运行webpack-bundle-analyzer,如下所示:
analyze-build-bundle
"scripts": { "analyze-build-bundle": "node scripts/analyze_build_bundle.js", "start": "react-scripts start", ..... ... }
1.现在执行命令npm run analyze-build-bundle。这将构建您的应用程序,然后启动分析器本地服务器,您应该能够看到如下图所示的屏幕
npm run analyze-build-bundle
yhqotfr84#
要使用可选参数运行插件,对我来说,以下主题的解决方案效果更好:webpack config with optional usage of BundleAnalyzerPlugin我通过对我的webpack.config.js进行一些更改来解决这个问题。首先,我改变了声明的方式。然后我改变了示例化BundleAnalyzerPlugin的方式,在其他插件之后使用concat:
... const withReport = process.env.npm_config_withReport ? true : false; ... plugins: [ ... ].concat(withReport ? [new BundleAnalyzerPlugin()] : []), ...
4条答案
按热度按时间axr492tv1#
如果你使用的是Create React App,一个更简单的方法是转到
package.json
并编辑npm脚本。1.运行
npm install --save-dev webpack-bundle-analyzer
安装webpack-bundle-analyzer1.在
"build"
脚本命令的末尾添加--stats
标志1.添加名为
"analyze"
的新脚本,如下所示接下来,运行
npm run build
,然后运行npm run analyze
。i1icjdpr2#
首先npm install --save-dev webpack-bundle-analyzer其次,在webpack.config.js中添加一些配置这是我在config/webpack.config.js中使用create react app时的配置
导入顶部的库
还要添加一些验证,以便构建脚本在部署到生产环境时不会出现问题
在插件中添加此代码
最后,在JSON包中添加一个新脚本
在你的终端上运行“npm run report”。应该会自动出现webpack bundle analyzer UI
vql8enpb3#
通过这种方式,您可以配置
webpack-bundle-analyzer
而无需弹出您的React App1.通过执行
npm install --save-dev progress-bar-webpack-plugin webpack-bundle-analyzer
添加一些依赖项1.在React App的根目录下创建一个名为
scripts
的新文件夹。1.在
scripts
文件夹中创建一个新文件analyze_build_bundle.js
,并在该文件中添加以下代码1.在
package.json
文件中添加analyze-build-bundle
命令,以运行webpack-bundle-analyzer
,如下所示:1.现在执行命令
npm run analyze-build-bundle
。这将构建您的应用程序,然后启动分析器本地服务器,您应该能够看到如下图所示的屏幕yhqotfr84#
要使用可选参数运行插件,对我来说,以下主题的解决方案效果更好:webpack config with optional usage of BundleAnalyzerPlugin
我通过对我的webpack.config.js进行一些更改来解决这个问题。
首先,我改变了声明的方式。然后我改变了示例化BundleAnalyzerPlugin的方式,在其他插件之后使用concat: