使用Angular 17 CLI生成的独立应用程序会将app. config. ts导入app. config. server. ts,默认情况下合并这两个配置.
这会导致在app.config. ts中导入的所有提供程序也会导入到app.config. server. ts中,从而在服务器上进行实例化.
如果客户端所需的提供程序在构造函数中使用sessionStorage,则会导致错误,因为服务器上没有定义sessionStorage.例如:
export class MyStoreItem extends StoreItem <Stuff> {
constructor() {
const storedStuff: any = sessionStorage.getItem('stuff');
}
}
我try 从app. config. server. ts中删除app. config. ts的导入,以及对mergeApplicationconfig(appconfig,serverconfig)的调用.这解决了这个问题,应用程序似乎工作正常.
我的问题是,有必要合并app.config. server.ts中的两个配置吗?如果有,为什么?
其次,如果有必要,我如何解决这个问题,而不判断提供者的构造函数是从服务器还是浏览器调用,因为它实际上不应该被服务器调用.
谢谢你!