npm 包lodash
本身不是 ECMAScript 模块,因此会产生警告。有多种方法可以解决此问题:
替换为 ES 模块化库(推荐)
一些库提供 ES 模块化构建。如果是lodash
,您可以将其替换为lodash-es。
运行npm install --save lodash-es
。
lodash
现在用替换所有导入lodash-es
。
还要确保使用 ES import 语句导入库:
import { keys } from 'lodash-es';
将 CommonJS 依赖列入白名单
如果您的库没有可用的 ES 模块化构建,或者您出于某种原因不关心,则可以在angular.json
文件中允许特定的 CommonJS 依赖项:
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"allowedCommonJsDependencies": ["lodash"]
}
}
}
从 Angular CLI 版本 10.0.1 开始,您可以在allowedCommonJsDependencies
. 这意味着如果您通过lodash
,子路径(例如lodash/keys
)也将被允许。
文档参考:https ://angular.io/guide/build#configuring-commonjs-dependencies