微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何解决错误:目标入口点“my-custom-NPM-package”缺少依赖项:-@angular/material/dialog

如何解决如何解决错误:目标入口点“my-custom-NPM-package”缺少依赖项:-@angular/material/dialog

我已经创建了我的第一个自定义 NPM 包并将其发布在 NPM 上。当我安装我的包时出现错误

错误:目标入口点“ts-idle-timeout”缺少依赖项:-@angular/material/dialog

我阅读了 this link 并尝试将 val x = .... val y = .... (x,y) match { case (Some(number),Some(text)) => { ...... } case (Some(number),None) => { ...... } case (_,_) => () // do nothing } 添加到 package.json 但出现错误

npm 错误! 400 错误请求 - PUT https://registry.npmjs.org/ts-idle-timeout - "peerDependencies" dep "@angular/material/dialog" 不是有效的依赖项名称

下面我添加了所有我认为是相关的代码。您将能够看到我的入口组件确实调用一个服务,而该服务又依赖于 @angular/material/dialog

我读过一些建议在消费应用程序中运行 @angular/material/dialog 的线程。我不认为这对我的情况是必要的,并且真的想要一个npm i SOME_MISSING_PACKAGE 运行后“正常工作”的包

老实说,创建​​ NPM 包的整个过程对我来说并没有“点击”,我不明白为什么我会收到缺少依赖项的错误。我需要添加什么来解决这个问题?

public-api.ts

npm i

idleTimeout/projects/ts-idle-timeout/package.json

export * from './lib/ts-idle/services/idle-timer.service';
export * from './lib/ts-idle/idle/ts-idle.component' ;
export * from './lib/ts-idle/ts-idle.module';

idleTimeout/package.json

{
  "name": "ts-idle-timeout","version": "0.0.1","peerDependencies": {
    "@angular/common": "^11.0.9","@angular/core": "^11.0.9","@angular/material": "^11.2.6"
  },"dependencies": {
    "tslib": "^2.0.0"
  }
}

TsIdleModule

{
  "name": "idle-timeout","version": "0.0.0","scripts": {
    "ng": "ng","start": "ng serve","build": "ng build","test": "ng test","lint": "ng lint"
  },"private": true,"dependencies": {
    "@angular/animations": "^11.0.9","@angular/cdk": "^12.0.1","@angular/common": "~11.0.9","@angular/compiler": "~11.0.9","@angular/core": "~11.0.9","@angular/forms": "~11.0.9","@angular/material": "^12.0.1","@angular/platform-browser": "~11.0.9","@angular/platform-browser-dynamic": "~11.0.9","@angular/router": "~11.0.9","rxjs": "~6.6.0","tslib": "^2.0.0","zone.js": "~0.10.2"
  },"devDependencies": {
    "@angular-devkit/build-angular": "~0.1100.7","@angular/cli": "~11.0.7","@angular/compiler-cli": "~11.0.9","@types/jasmine": "~3.6.0","@types/node": "^12.11.1","codelyzer": "^6.0.0","jasmine-core": "~3.6.0","jasmine-spec-reporter": "~5.0.0","karma": "~5.1.0","karma-chrome-launcher": "~3.1.0","karma-coverage": "~2.0.3","karma-jasmine": "~4.0.0","karma-jasmine-html-reporter": "^1.5.0","ng-packagr": "^11.0.0","protractor": "~7.0.0","ts-node": "~8.3.0","tslint": "~6.1.0","typescript": "~4.0.2"
  }
}   

TsIdleComponent

@NgModule({
    declarations: [TsIdleComponent],imports: [
        CommonModule,MatDialogModule
    ],exports: [TsIdleComponent]
})
export class TsIdleModule {
    public static forRoot(config: any): ModuleWithProviders<TsIdleModule> {
        return {
            ngModule: TsIdleModule,providers: [
                IdleService,{ provide: 'config',useValue: config}
            ]
        };
    }
}

DialogConfirmService

...other imports...
import { DialogConfirmService } from '../../dialog/dialog-confirm/services/dialog-confirm.service';
...other imports...

@Component({
  selector: 'ts-idle',template: ``
})
export class TsIdleComponent implements OnInit,OnDestroy {

  constructor(
    private _idleService: IdleService,private _dialogConfirmService: DialogConfirmService) { }

...other code...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。