0

我正在创建一个要发布到 npm 的 Angular2 组件库。我在整个源代码中使用 index.ts 作为我的桶文件。我已经在我的 .npmignore 文件中包含了 *.ts,但是 index.ts 被包含在发布到 npm 的代码中。当我在使用 Angular2 项目中安装组件时,index.ts 包含在安装在 node_modules 文件夹中的代码中。在 npm 安装库中使用 index.ts 会阻止主应用程序的构建,因为 index.ts 不在根文件夹中。令人惊讶的是,我的所有其他 .ts 文件都被排除在 npm 安装中。

这是我的 .npmignore 文件:

node_modules
npm-debug.log
Thumbs.db
.DS_Store
.idea
.vscode
*.ts
**/*.ts
**/index.ts
!*.d.ts
.gitignore
.npmignore
license-banner.txt
tsconfig.json
tsconfig.publish.json

除了 index.ts,一切都被忽略了。

我必须手动进入并删除每个 index.ts 文件,然后一切都按预期工作。

我错过了什么导致 index.ts 被包含在内?

我正在使用 npm 版本 3.9.6。

谢谢你的帮助。

4

1 回答 1

0

经过大量研究和反复试验,我发现我需要添加一个输出目录来将我的 TS 代码编译成 JS 和 typescript 类型信息 (.d.ts) 文件。一旦生成的代码位于单独的文件夹中(在本例中为 /lib),我的实现更改为从我的 lib 文件夹中导入。我所有的 .ts 文件都保留在 src 文件夹中。

我已安装该库的项目现在正在按预期编译。底线是确保您生成的代码(JS 和 .d.ts 文件)位于与源代码不同的文件夹中。现在看来很明显。

于 2016-11-02T20:46:54.363 回答