我正在创建一个我发布到npm的Angular2组件库 . 我在整个源代码中使用index.ts作为我的桶文件 . 我在.npmignore文件中包含* .ts,但是,index.ts包含在发布到npm的代码中 . 当我在消费的Angular2项目中安装组件时,index.ts包含在node_modules文件夹中安装的代码中 . 在整个npm安装库中使用index.ts会阻止构建主应用程序,因为index.ts不在根文件夹中 . 令人惊讶的是,我在npm安装中排除了所有其他.ts文件 .
这是我的.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之外,Everthing被忽略了 .
我必须手动进入并删除每个index.ts文件,然后一切按预期工作 .
我错过了什么导致index.ts被包括在内?
I'm using npm version 3.9.6.
谢谢你的帮助 .
1 回答
经过大量的研究和反复试验,我发现我需要添加一个输出目录,用于将我的TS代码编译成JS和打字稿类型信息(.d.ts)文件 . 一旦生成的代码在一个单独的文件夹中(在本例中为/ lib),我的实现就改为从我的lib文件夹导入 . 我的所有.ts文件都保留在src文件夹中 .
我安装库的项目现在正在按预期编译 . 底线是确保生成的代码(JS和.d.ts文件)与源代码位于不同的文件夹中 . 现在似乎很明显 .