使用TypeScript对节点包进行本地更改

时间:2016-06-07 18:54:20

标签: node.js typescript npm

我很擅长使用npm和TypeScript,所以我希望我找不到明显的东西。我们编写了一个用TypeScript编写的节点包,供我们自己内部使用。因此,源代码是用Typescript编写的,文件结构如下所示:

src/myModule.ts
myModule.ts

myModule.ts的位置如下:

export * from "./src/myModule";

然后我运行tsc来生成.js和.d.ts文件。所以,文件看起来像这样:

src/myModule.js
src/myModule.ts
src/myModule.d.ts
myModule.js
myModule.ts
myModule.d.ts

所有这些都被推送到git,然后我们的主应用程序通过git URL将此包作为依赖项包含在内。当我第一次尝试这个时,我得到了这样的错误:

export * from "./src/myModule";
^
ParseError: 'import' and 'export' may appear only with 'sourceType: module'

经过一番搜索后,我发现问题出在加载的.ts文件中。所以我将以下内容添加到.npmignore中:

*.ts
!*.d.ts

执行此操作后,它会毫无问题地引入节点包。

我遇到的问题是我希望能够在活动开发期间运行对节点包的本地更改。我希望能够在节点包中进行更改,然后让主应用程序选择这些更改,以便在推送到git之前确保一切正常。我发现的一切都说使用npm link。这使它指向我的本地目录,但问题是它现在有所有的.ts文件,并显示相同的错误。

我确信npm link在使用JavaScript编写所有内容时效果很好,但我们使用TypeScript编写所有内容。有没有办法让这个工作使用TypeScript?

1 个答案:

答案 0 :(得分:2)

  

这使它指向我的本地目录,但问题是它现在有所有的.ts文件,并显示相同的错误。

如果您有.ts个文件以及这些文件的单独声明,则只会显示错误。

推荐修复

只需使用单独的 .ts / .js / .d.ts文件,避免捆绑单个.d.ts