.npmignore:忽略整个文件夹,但给定的文件类型

时间:2018-01-04 09:51:01

标签: npm gitignore npmignore

背景

我有一个我要发布到npm的打字稿项目。我的所有TS源都在一个名为src的文件夹中,这些文件被编译到名为dist的文件夹中。 src可能包含一些html模板,可能包含css文件和其他资产。作为构建的一部分,这些资产都被复制到dist文件夹。

也会在dist文件夹

中生成源地图文件

发布时我只想发布dist文件夹,但我希望dist文件夹中的源地图能够正常工作。

我想要实现的目标

当我发布到npm时,我希望包含整个dist文件夹,但忽略src文件夹中的所有非ts文件。

我需要.ts文件的原因是因为dist文件夹中的源图指向这些源文件。调试时我需要原始源才能在浏览器中看到它。

因此,对src

中的.ts文件,我需要忽略src例外

我尝试了什么

根据我的研究,我已经尝试了以下内容,应该尽我所能。

# standard ignores

node_modules/
karma.conf.js
spec/

# ignore src

src/

# override above and include ts files

!src/**/*.ts
!src/**/*.d.ts

当我使用这个文件打包时,我得到了包中的整个src文件夹,包括html,css和图像文件。

我不确定以上内容是否适用于src文件夹下的ts文件,所以我也试过了

!src/actualFile.ts

但结果是一样的。

1 个答案:

答案 0 :(得分:1)

<强>解决方案:

将通配符**/*添加到您的忽略src模式中,使其成为:

# ignore src

src/**/*

其他评论:

您的上一个否定模式(即!src/**/*.d.ts)可以省略。它通过之前的否定模式(即!src/**/*.ts)实际上变得多余。

单独使用!src/**/*.ts将确保*.d.ts目录中的所有src文件也包含在内。

完成修订后的.npmignore

为清楚起见,完整修订后的.npmignore(根据您提供的示例)应为:

# standard ignores

node_modules/
karma.conf.js
spec/

# ignore src

src/**/*

# override above and include ts files

!src/**/*.ts