如何测试我发布的NPM包的本地安装?

时间:2016-12-19 16:20:12

标签: javascript node.js npm npm-install npm-publish

我最近发表了package to NPM。该程序包在我自己的计算机上运行良好,我编写代码,但在同事机器上import { ChangeDetectorRef, ChangeDetectionStrategy, Component } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { SettingsEntityListComponentBase } from '../../component-bases'; import { ClientType } from '../../models/ClientType'; import { ClientTypeService } from '../../services/client-type.service' import { ApplicationService, NotificationContext, Permission, UserService, WindowType, SearchArgs, SearchItem, SearchItemType, SearchTypeValues } from '../../../core'; @Component({ moduleId: module.id, selector: 'client-type-list', templateUrl: 'client-type-list.component.html', changeDetection: ChangeDetectionStrategy.OnPush }) export class ClientTypeListComponent extends SettingsEntityListComponentBase<ClientType> { constructor( changeDetector: ChangeDetectorRef, appService: ApplicationService, clientTypeService: ClientTypeService, userService: UserService) { super(changeDetector, appService, clientTypeService, userService, Permission.SettingsClientTypes, Permission.GlobalClientTypes, WindowType.ClientTypeDetail, NotificationContext.ClientTypeChanged); } searchText: string = '4455'; selectedSecurity: SearchItem; searchObservable: Observable<SearchItemType[]>; searchResults: SearchItemType[]; onSearch(args: SearchArgs): void { this.searchObservable = this.appService.search(args.searchText, SearchTypeValues.Securities); //this.appService.search(args.searchText, SearchTypeValues.Securities).subscribe(r => this.resp(r)); } resp(r: any) { this.searchResults = r; this.changeDetector.markForCheck(); } } ,我开始收到错误。

在我自己的计算机上安装和测试我的软件包的最佳方法是什么?我可以追踪我的同事计算机上的错误,但我认为有一种方法可以在我自己的机器上执行此操作。

1 个答案:

答案 0 :(得分:1)

  1. 如果你想测试它,你不必先在自己的计算机上安装它,你可以编写单元测试,因为你必须require这个包(就像你一样) npm安装)。
  2. 检查package.json以查看dependencies下是否列出了所有需要的模块。 (删除node_modules文件夹,运行npm install并查看给出的错误)
  3. 如果有一个名为.npmrc的文件,请检查它列出的文件/文件夹,以确保它不会从NPM中排除重要文件。
  4. 确保您的模块具有module.exports对象,以便能够访问对象/功能
  5. 如果这一切都没有帮助,那可能是一个更具体的问题,而GitHub链接可以帮助我们更多