为什么create-react-app打包时使用Dashjs的debug版本而非minified版本?
React项目build后引入dash.all.debug.js而非min版本的解决办法
- 首先检查dashjs的导入语句
如果你写的是import dashjs from 'dashjs/dist/dash.all.debug.js'这类指定了debug文件路径的导入,不管打包环境是什么都会引入debug版本。改为直接导入包主入口即可:import dashjs from 'dashjs',dashjs官方包默认会根据当前环境自动匹配对应版本。 - 检查自定义webpack配置
如果你通过eject、craco、customize-cra等方式修改了React默认配置,检查resolve.alias是否给dashjs设置了指向debug文件的别名,如有错误修正为min版本路径或者直接删除该别名配置即可。 - 确认NODE_ENV变量是否正确
react-scripts build默认会将NODE_ENV设置为production,如果你在.env文件、打包脚本或者系统环境变量中手动将NODE_ENV修改为了development,dashjs的条件导出逻辑会返回debug版本。你可以在代码中加入console.log(process.env.NODE_ENV),build后运行确认输出为production即可。 - 手动指定条件导入
如果以上配置都正常,可通过条件导入强制区分环境使用对应版本:let dashjs; if (process.env.NODE_ENV === 'production') { dashjs = require('dashjs/dist/dash.all.min.js'); } else { dashjs = require('dashjs/dist/dash.all.debug.js'); } - 升级dashjs版本
部分旧版本dashjs的package.json配置存在问题,默认导出的是debug版本,升级到dashjs最新稳定版即可修复该问题。
内容的提问来源于stack exchange,提问作者Rodolphe
相关产品推荐
相关产品推荐

