网站首页 > 技术文章 正文
项目打包
步骤
- 在项目根目录下打开终端,输入打包命令:yarn build
- 等待打包完成,打包生成的内容被放在根下的build文件夹中2. 项目本地预览
项目本地预览
步骤
- 全局安装本地服务包 npm i -g serve 该包提供了serve命令,用来启动本地服务
- 在项目根目录中执行命令 serve -s ./build 在build目录中开启服务器
- 在浏览器中访问:http://localhost:3000/ 预览项目
打包体积分析
步骤
- 安装分析打包体积的包:yarn add source-map-explorer
- 在 package.json 中的 scripts 标签中,添加分析打包体积的命令
- 对项目打包:yarn build(如果已经打过包,可省略这一步)
- 运行分析命令:yarn analyze
- 通过浏览器打开的页面,分析图表中的包体积
package.json 中:
"scripts": {
"analyze": "source-map-explorer 'build/static/js/*.js'",
}
优化-配置CDN
通过 craco 来修改 webpack 配置,从而实现 CDN 优化
craco.config.js
// 添加自定义对于webpack的配置
const path = require('path')
const { whenProd, getPlugin, pluginByName } = require('@craco/craco')
module.exports = {
// webpack 配置
webpack: {
// 配置别名
alias: {
// 约定:使用 @ 表示 src 文件所在路径
'@': path.resolve(__dirname, 'src')
},
// 配置webpack
// 配置CDN
configure: (webpackConfig) => {
// webpackConfig自动注入的webpack配置对象
// 可以在这个函数中对它进行详细的自定义配置
// 只要最后return出去就行
let cdn = {
js: [],
css: []
}
// 只有生产环境才配置
whenProd(() => {
// key:需要不参与打包的具体的包
// value: cdn文件中 挂载于全局的变量名称 为了替换之前在开发环境下
// 通过import 导入的 react / react-dom
webpackConfig.externals = {
react: 'React',
'react-dom': 'ReactDOM'
}
// 配置现成的cdn 资源数组 现在是公共为了测试
// 实际开发的时候 用公司自己花钱买的cdn服务器
cdn = {
js: [
'https://cdnjs.cloudflare.com/ajax/libs/react/18.1.0/umd/react.production.min.js',
'https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.1.0/umd/react-dom.production.min.js',
],
css: []
}
})
// 都是为了将来配置 htmlWebpackPlugin插件 将来在public/index.html注入
// cdn资源数组时 准备好的一些现成的资源
const { isFound, match } = getPlugin(
webpackConfig,
pluginByName('HtmlWebpackPlugin')
)
if (isFound) {
// 找到了HtmlWebpackPlugin的插件
match.userOptions.cdn = cdn
}
return webpackConfig
}
}
}
public/index.html
<body>
<div id="root"></div>
<!-- 加载第三发包的 CDN 链接 -->
<% htmlWebpackPlugin.options.cdn.js.forEach(cdnURL => { %>
<script src="<%= cdnURL %>"></script>
<% }) %>
</body>
- 上一篇: 前端vue打包后部署方式 vue 打包后
- 下一篇: 炫酷数据可视化大屏,前端程序员看过都会打包带走
猜你喜欢
- 2025-05-26 干掉OpenFeign,SpringBoot 3.0 自带的 HTTP 客户端真香!
- 2025-05-26 GitHub和码云上,7个h5页面制作工具推荐
- 2024-09-25 Farm 火了!比 Rspack/Vite 更快的打包方案!
- 2024-09-25 京东通天塔前端性能优化实践 京东通天塔页面
- 2024-09-25 如果你是前端开发程序员,没用过这些插件、工具、类库就out了!
- 2024-09-25 Util应用框架前端概述 前端ui工具
- 2024-09-25 推荐一个vue插件,基于hiprint封装的可视化报表设计与打印工具
- 2024-09-25 如何快速将你的应用封装成JS-SDK?
- 2024-09-25 炫酷数据可视化大屏,前端程序员看过都会打包带走
- 2024-09-25 前端vue打包后部署方式 vue 打包后
你 发表评论:
欢迎- 493℃几个Oracle空值处理函数 oracle处理null值的函数
- 488℃Oracle分析函数之Lag和Lead()使用
- 485℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 472℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 467℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 462℃【数据统计分析】详解Oracle分组函数之CUBE
- 444℃Oracle有哪些常见的函数? oracle中常用的函数
- 439℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
-
- Spring Boot跨域难题终结者:3种方案,从此告别CORS噩梦!
- 京东大佬问我,SpringBoot为什么会出现跨域问题?如何解决?
- 在 Spring Boot3 中轻松解决接口跨域访问问题
- 最常见五种跨域解决方案(常见跨域及其解决方案)
- Java Web开发中优雅应对跨域问题(java跨域问题解决办法)
- Spring Boot解决跨域最全指南:从入门到放弃?不,到根治!
- Spring Boot跨域问题终极解决方案:3种方案彻底告别CORS错误
- Spring Cloud 轻松解决跨域,别再乱用了
- Github 太狠了,居然把 "master" 干掉了
- IntelliJ IDEA 调试 Java 8,实在太香了
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)