首页 > 解决方案 > libphonenumber-js 是否与 Angular 的 buildOptimizer 选项兼容?

问题描述

我正在尝试在我的混合 angularjs 和 Angular 7.2.2 项目中实现 libphonenumber-js。它在 JIT( ng serve) 中运行良好,但是当我启用buildOptimizeroptimizeangular.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)

我真的很希望能够同时使用两者optimizebuildOptimizer因为它是一个巨大的应用程序,这确实提高了性能。知道如何调试吗?

编辑:这可能与https://github.com/angular/angular-cli/issues/11439有关

标签: javascriptangulartypescript

解决方案


将库更新到版本 1.7.6 并使用新功能解决了该问题。


推荐阅读