具有多个本地包的本地开发

时间:2019-05-02 13:56:35

标签: javascript node.js typescript npm

我有一个NodeJS应用程序和几个本地包(我想与其他浏览器应用程序共享的一些实用程序),都用Typescript编写,结构如下:

程序包A (具有一些基本的实用程序功能)

  • 没有依赖项

B包(使用实用程序功能执行更复杂的操作)

  • A包<-带有npm链接

NodeJS应用(我需要同时使用基本实用程序功能和复杂功能)

  • B包<-具有npm链接
  • A包<-带有npm链接

所有这些软件包均已构建为等效于.js的版本,但是当我尝试在NodeJS应用程序中使用软件包A中的方法时出现错误。

例如:

Package A / Collections.ts:

class Collection{
    count(){ ...code here }
}

包B / ComplexCollections.ts:

import Collection from "project-a/Collection";

class ComplexCollection extends Collection{
}

NodeJS app / index.ts:

import ComplexCollection from "project-B/ComplexCollection";

const collection = new ComplexCollection();
colection.count() // this gives `error TS2339: Property 'count' does not exist on type 'ComplexCollection'`

似乎包B没有公开包的A Collection类。

我可以通过直接使用.ts文件来解决此错误,但据我所知,根据this comment

,这不是一个好习惯

如何解决此问题? 或采用这种设置的本地开发工作流程是什么?

我的最终计划是在通过angularpack,react,vue或vanilla JS构建的Web应用程序中使用这些软件包(通过Webpack)

0 个答案:

没有答案