javascript - libphonenumber-js 是否与 Angular 的 buildOptimizer 选项兼容?
问题描述
我正在尝试在我的混合 angularjs 和 Angular 7.2.2 项目中实现 libphonenumber-js。它在 JIT( ng serve
) 中运行良好,但是当我启用buildOptimizer
和optimize
在angular.json
.
如果我只启用上述其中一项,它也可以正常工作。
在构建过程中我没有错误,但是当我在网站上打开表单时,我的控制台中有以下内容。
angular.js.pre-build-optimizer.js:14961 TypeError: (0 , r.default) is not a function
at MfjL.e.default (isValidNumberForRegion.js.pre-build-optimizer.js:37)
at e.isValidNumberForRegion (phone-utils.service.ts:32)
at O (my-account-data-controller.js.pre-build-optimizer.js:48)
at xt (my-account-data-controller.js.pre-build-optimizer.js:57)
at Object.invoke (angular.js.pre-build-optimizer.js:5117)
at O.instance (angular.js.pre-build-optimizer.js:11139)
at it (angular.js.pre-build-optimizer.js:10002)
at angular.js.pre-build-optimizer.js:9311
at angular.js.pre-build-optimizer.js:9176
at Object.link (angular.js.pre-build-optimizer.js:28821)
我们在我们的站点中使用 ng upgrade ( https://angular.io/guide/upgrade )。
在 chrome 调试器中,当我点击 时angular.js.pre-build-optimizer.js:14961
,我得到
// Support: IE 9 only
// console methods don't inherit from Function.prototype in IE 9 so we can't
// call `logFn.apply(console, args)` directly.
return Function.prototype.apply.call(logFn, console, args);
当我点击时isValidNumberForRegion.js.pre-build-optimizer.js:37
,这是代码:
// `parse` extracts phone numbers from raw text,
// therefore it will cut off all "garbage" characters,
// while this `validate` function needs to verify
// that the phone number contains no "garbage"
// therefore the explicit `isViablePhoneNumber` check.
var input = void 0;
if ((0, _isViablePhoneNumber2.default)(number)) {
input = (0, _parse_2.default)(number, { defaultCountry: country }, metadata);
} else {
input = {};
}
找不到的函数是(0, _isViablePhoneNumber2.default)(number)
。
我真的很希望能够同时使用两者optimize
,buildOptimizer
因为它是一个巨大的应用程序,这确实提高了性能。知道如何调试吗?
编辑:这可能与https://github.com/angular/angular-cli/issues/11439有关
解决方案
将库更新到版本 1.7.6 并使用新功能解决了该问题。
推荐阅读
- email - 使用
我完全理解这是一个广泛的主题,但我并不是在寻求关于什么是最好的技术的建议,而不是我今天第一次看到的具体实现。
基本上我遇到了一个网站,我试图联系的人的电子邮件迫使我设置未设置的本地 mail.app(在 Mac 上)(我使用 Outlook),这意味着我无法联系这个人.
因此,我检查了该元素,只发现一张普通的图像,这很奇怪,因为仅此一项无法触发邮件应用程序打开。由于那里
- flutter - Flutter InteractiveViewer 不平移/滚动
- databricks - 如何将本地文件复制到 Azure Databricks DBFS 文件存储
- javascript - 有什么方法可以区分 javascript 中的 window.print、File->Print 和 Ctrl+P 事件吗?
- google-bigquery - 查询多个分区 bigquery
- mariadb-10.4 - Maxscale 在节点重启后失去用户同步
- android - 如何在 Android 中使用 url 图片通知 LargeIcon?
- php - 通过 Sendgrid 将表单数据作为 PDF 附件发送
- c++ - 如何在最后的排序双向链表中插入节点?
- vue.js - VueJS SideMenuBar 组件