Обновление NG-Zorro с V8 до V9 дает: «Класс расширяет значение undefined не является конструктором или нулем» - PullRequest
0 голосов
/ 04 мая 2020

После запуска ng update ng-zorro-antd мы получаем:

[error] TypeError: Class extends value undefined is not a constructor or null
    at Object.<anonymous> (C:\Users\<user name>\Desktop\Work\<project name>\node_modules\ng-zorro-antd\schematics\ng-update\upgrade-rules\checks\calendar-input-rule.js:4:49)

Это также происходит в новом Angular 8 проекте. Обновление до Angular 9 работает нормально, но происходит сбой только обновления NG-Zorro.

Это содержимое файла calendar-input-rule.js из ошибки:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const schematics_1 = require("@angular/cdk/schematics");
class CalendarTemplateRule extends schematics_1.MigrationRule {
    constructor() {
        super(...arguments);
        this.ruleEnabled = this.targetVersion === schematics_1.TargetVersion.V9;
    }
    visitTemplate(template) {
        schematics_1.findInputsOnElementWithTag(template.content, 'nzCard', ['nz-calendar'])
            .forEach(offset => {
            this.failures.push({
                filePath: template.filePath,
                position: template.getCharacterAndLineOfPosition(offset),
                message: `Found deprecated input "nzCard" component. Use "nzFullscreen" to instead please.`
            });
        });
    }
}
exports.CalendarTemplateRule = CalendarTemplateRule;
//# sourceMappingURL=calendar-input-rule.js.map

Я видел людей говорят, что это может быть связано с циклическими зависимостями, но приложение работает нормально, поэтому ошибка может быть из-за импорта NG-Zorro? Есть ли какие-нибудь обходные пути?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Я разместил эту проблему на их репозитории Github , и они предоставили обходной путь для этого. Все, что нам нужно было сделать, это установить более старую версию @angular/cdk (даже если мы не будем использовать ее напрямую), пока они не выпустят патч:

npm i @angular/cdk@9.2.1 --save

Мы удалили @angular/cdk из пакета. json после обновления. Я не знаю, повлияет ли это на что-то в будущем. Пока все хорошо

0 голосов
/ 04 мая 2020

Произошла такая же ошибка, после удаления node_modules и переустановки все пропало.

...