0
我已經寫了angular2的遠程記錄器,它工作正常。我現在想將它作爲自己的npm庫發佈,並努力使其可用。我將自己定位於ngx-translate模塊的設置。建立和發佈angular2模塊
我內部使用記錄儀的一般設置類似於Ben Nadel's Custom Error Handler Post描述的:
import {
LOG4NG_SERVICE_HANDLER_PROVIDERS,
LOG4NG_SERVICE_CONFIG,
LOG4NG_ERROR_HANDLER_PROVIDERS,
LOG4NG_ERROR_HANDLER_CONFIG } from './log4ng.service';
import * as message from './log4ng.service/message';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [
LOG4NG_SERVICE_HANDLER_PROVIDERS,
{
provide: LOG4NG_SERVICE_CONFIG,
useValue: {
recipients: [
{
classname: 'ConsoleWriter',
params: {
name: 'Angular2 Test App::Console Logger'
}
}
],
filters: [ /** filter definition **/ ]
}
},
LOG4NG_ERROR_HANDLER_PROVIDERS,
{
provide: LOG4NG_ERROR_HANDLER_CONFIG,
useValue: {
rethrowError: false,
unwrapError: false
}
}
],
bootstrap: [AppComponent]
})
export class AppModule { }
我試過這種方法適應它自己的模塊,像這樣:
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import {
Log4ngService,
ILog4ngServiceConfig,
LOG4NG_SERVICE_CONFIG,
LOG4NG_SERVICE_HANDLER_PROVIDERS,
ErrorHandlerLoggingService,
LOG4NG_ERROR_HANDLER_CONFIG,
LOG4NG_ERROR_HANDLER_PROVIDERS
} from './src';
export * from './src';
@NgModule({
imports: [
CommonModule
],
providers: [
Log4ngService,
ErrorHandlerLoggingService
]
})
export class Log4ngModule {
static forRoot(config: ILog4ngServiceConfig = LOG4NG_SERVICE_CONFIG): ModuleWithProviders {
return {
ngModule: Log4ngModule,
providers: LOG4NG_SERVICE_HANDLER_PROVIDERS
};
}
static forChild(config: ILog4ngServiceConfig = LOG4NG_SERVICE_CONFIG): ModuleWithProviders {
return {
ngModule: Log4ngModule,
providers: LOG4NG_SERVICE_HANDLER_PROVIDERS
};
}
}
我開始創建一個demo-app來使用這個模塊,並使用npm link
在本地使用庫文件。雖然它完全建立,試圖演示程序使用它的時候,我得到的運行時錯誤:
Error: Can't resolve all parameters for Log4ngService: (?)
我不明白,既然我的理解,所有必要的DI令牌設置是否正確。
你可以在這個混帳的倉庫的開發分支找到代碼:https://github.com/LarsKumbier/log4ng/tree/dev
任何幫助和提示讚賞 - 在此先感謝!
一廠什麼,我沒有,因爲你不使用它們的參數'config'爲什麼要使用forRoot和forChild明白了嗎? –
是的,那些是ngx-translate的殘餘,有些嘗試解決這個問題。應該刪除那些。 – Lars