libphonenumber-js是否与Angular的buildOptimizer选项兼容?

时间:2019-01-23 16:37:18

标签: javascript angular typescript

我正在尝试在我的混合angularjs和Angular 7.2.2项目中实现libphonenumber-js。它在JIT(ng serve)中工作正常,但是在buildOptimizer中启用optimizeangular.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升级(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

有关

1 个答案:

答案 0 :(得分:0)

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