【发布时间】:2019-09-26 08:29:55
【问题描述】:
我需要构建 bundle-stats.json 来使用 webpack-bundle-analyzer。 这是我尝试构建它的方式,但它不会创建任何文件。
npm run build -- --stats
你能帮帮我吗
【问题讨论】:
标签: reactjs webpack create-react-app
我需要构建 bundle-stats.json 来使用 webpack-bundle-analyzer。 这是我尝试构建它的方式,但它不会创建任何文件。
npm run build -- --stats
你能帮帮我吗
【问题讨论】:
标签: reactjs webpack create-react-app
--stats 标志已添加回 CRA 中的 this PR。
所以你可以再次使用webpack-bundle-analyzer。
【讨论】:
create-react-app: 5.0.0 一起使用
您可以使用 @craco/craco 来完成,这是一个使用自定义 webpack 配置和 Create React App 的工具。
如this article 所述:
@craco/craco和webpack-bundle-analyzer
npm install @craco/craco webpack-bundle-analyzer --save-dev
craco.config.js 的文件,其中包含以下内容:
const BundleAnalyzerPlugin =
require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
module.exports = function () {
return {
webpack: {
plugins: [new BundleAnalyzerPlugin({ analyzerMode: "server" })],
},
};
};
package.json 脚本部分:
{
...
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
+ "analyze": "craco build"
}
}
npm run analyze
因为您在craco 配置中将analyzerMode 设置为“server”,所以您将自动打开浏览器并将结果用作网页(如果您想要输出而不涉及浏览器)
【讨论】:
首先,将 webpack-bundle-analyzer 添加到您的开发依赖项中:
yarn add -D webpack-bundle-analyzer
然后你可以顺序运行命令:
yarn build -- --stats
yarn webpack-bundle-analyzer ./build/bundle-stats.json
或者,为了您的方便,您可以将脚本添加到您的 package.json:
"scripts": {
...
"analyze": "yarn build -- --stats && yarn webpack-bundle-analyzer ./build/bundle-stats.json"
}
您可以使用 npm 代替 yarn,只需相应地编辑命令即可。
然后你可以像我一样使用yarn analyze 或 VS Code 中可用的脚本运行器 UI 运行脚本。如果在创建新文件夹之前已经存在,您还可以添加用于删除构建文件夹的脚本。为此,根据您的平台,您可以使用 cmd 或 bash 命令:
if exist build\\ ( rmdir /s /q .\\build )
[ -d 'build' ] && rm -r build
所以最终的解决方案是这样的:
"scripts": {
...
"analyze": "yarn remove_build && yarn build -- --stats && yarn webpack-bundle-analyzer ./build/bundle-stats.json",
"remove_build": "if exist build\\ ( rmdir /s /q .\\build )"
}
【讨论】: