升级Angular 18至19后出现dayjs的ESM模块警告问题
解决Angular 19中dayjs的CommonJS模块警告
方法一:配置Angular允许指定CommonJS依赖
编辑项目根目录的angular.json,找到目标项目的build配置节点,在options中添加allowedCommonJsDependencies数组,将dayjs及其utc插件列入允许列表:
"build": { "options": { // 保留原有配置 "allowedCommonJsDependencies": [ "dayjs", "dayjs/plugin/utc" ] } }
这会直接告知Angular构建工具,这两个模块属于预期的CommonJS依赖,不会触发优化 bailout 警告。
方法二:切换到dayjs的ESM版本
dayjs从v1.11.7起提供了原生ESM支持,你可以先升级到最新稳定版:
npm update dayjs
然后修改组件中的导入路径为ESM入口:
import dayjs from 'dayjs/esm'; import utc from 'dayjs/esm/plugin/utc'; dayjs.extend(utc);
这种方式从根源上使用ESM模块,彻底消除CommonJS相关警告。
可选:同步更新类型定义
如果升级后出现类型报错,可同步更新dayjs的类型包:
npm install @types/dayjs@latest --save-dev
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

