我正在创建一个我发布到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。
之外,它被忽略了我必须手动进入并删除每个index.ts文件,然后一切都按预期工作。
我错过了什么导致index.ts被包括在内?
我正在使用npm版本3.9.6。
感谢您的帮助。
答案 0 :(得分:0)
经过大量的研究和反复试验,我发现我需要添加一个输出目录,用于将我的TS代码编译成JS和打字稿类型信息(.d.ts)文件。一旦生成的代码在一个单独的文件夹中(在本例中为/ lib),我的实现就改为从我的lib文件夹导入。我的所有.ts文件都保留在src文件夹中。
我安装了库的项目现在正在按预期编译。底线是确保生成的代码(JS和.d.ts文件)与源代码位于不同的文件夹中。现在看来很明显。