You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 15升级至17后调用deserialize()触发Vite内部服务器错误

Angular 15升级至17后Vite内部服务器错误问题

升级项目从Angular 15到17后,持续出现以下Vite内部服务器错误:

[vite] Internal server error: Cannot convert undefined or null to object
at Function.getPrototypeOf ()
at node_modules/whatwg-url/lib/utils.js (/home/dej/src/hi-frontend/node_modules/whatwg-url/lib/utils.js:34:39)
at __require2 (/home/dej/src/hi-frontend/.angular/vite-root/hi-frontend/chunk-LO3AJX6B.mjs:54:50)
at node_modules/whatwg-url/lib/URL.js (/home/dej/src/hi-frontend/node_modules/whatwg-url/lib/URL.js:4:15)
at __require2 (/home/dej/src/hi-frontend/.angular/vite-root/hi-frontend/chunk-LO3AJX6B.mjs:54:50)
at node_modules/whatwg-url/webidl2js-wrapper.js (/home/dej/src/hi-frontend/node_modules/whatwg-url/webidl2js-wrapper.js:3:13)
at __require2 (/home/dej/src/hi-frontend/.angular/vite-root/hi-frontend/chunk-LO3AJX6B.mjs:54:50)
at node_modules/whatwg-url/index.js (/home/dej/src/hi-frontend/node_modules/whatwg-url/index.js:3:34)
at __require2 (/home/dej/src/hi-frontend/.angular/vite-root/hi-frontend/chunk-LO3AJX6B.mjs:54:50)
at node_modules/jsdom/lib/api.js (/home/dej/src/hi-frontend/node_modules/jsdom/lib/api.js:7:19) (x2)

经排查,错误由调用new User().deserialize(user)触发,项目中所有调用deserialize()方法的位置均出现该问题。例如服务中的get方法:

getUser(): Observable<User> {
    let url = this.domain + this.prefix + '/user/';
    return this.http.get<User>(url).pipe(
        map(user => new User().deserialize(user))
    );
}

若不调用deserialize()处理服务器响应,错误会消失,但该方法已在项目中大量使用,无法直接移除。

User类定义如下:

export interface Deserializable {
    deserialize(input: any): this;
}

export class User implements Deserializable {
    id: number;

    deserialize(input: any): this {
        Object.assign(this, input);
        return this;
    }

    getId() {
        return this.id;
    }
}

尝试在deserialize()中添加空值校验后,问题仍未解决:

deserialize(input: any): this {
    if (input == null || input == undefined)
        return this;

    Object.assign(this, input);
    return this;
}

请问该错误的原因是什么?


内容的提问来源于stack exchange,提问作者Dejan S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:46:11