vite react 项目打包报错处理

 Could not find a declaration file for module 'lodash'

安装 Lodash 类型声明文件

# 使用 npm
npm install --save-dev @types/lodash

# 使用 yarn
yarn add -D @types/lodash

打包成功

### 解决 Vite 打包错误 `crypto$2.getRandomValues is not a function` 当遇到打包前端项目报错 `TypeError: crypto$2.getRandomValues is not a function` 时,这通常是因为某些依赖库尝试访问 Node.js 的内置模块 `crypto`,而这些模块在浏览器环境中不可用。 #### 安装 polyfill 为了使应用程序能够在不修改源码的情况下正常工作,可以考虑引入一个 polyfill 来模拟缺失的功能。具体做法是在项目的根目录下创建或编辑 `vite.config.ts` 文件,并添加如下配置: ```typescript import { defineConfig } from 'vite'; import reactRefresh from '@vitejs/plugin-react-refresh'; export default defineConfig({ plugins: [reactRefresh()], resolve: { alias: { // 添加此行来处理 crypto 模块的问题 crypto: 'crypto-browserify', }, }, }); ``` 此外还需要通过 npm 或 yarn 安装所需的包: ```bash npm install crypto-browserify stream-browserify assert browserify-sign sha.js --save-dev ``` 以上设置会告诉 Webpack 使用 `crypto-browserify` 替代原生的 `crypto` 库[^1]。 #### 修改 package.json 中的 browserslist 字段 有时该问题是由于目标环境过旧造成的兼容性问题引起的。可以通过调整 `package.json` 文件中的 `browserslist` 配置项指定更现代的目标平台,从而避免不必要的 polyfills 被注入到最终构建产物中。 ```json { "browserslist": [ "> 0.5%", "last 2 versions", "not dead" ] } ``` 这样做有助于减少潜在冲突并提高性能表现[^3]。 #### 更新 node 版本 如果上述方法仍无法解决问题,则可能是本地使用的 Node.js 版本太低所致。建议升级至最新稳定版 LTS (Long Term Support),因为较新的版本往往有更好的安全性和特性支持。对于大多数开发者而言,保持使用官方推荐的长期维护版本是一个不错的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值