.npmignore:忽略除给定文件类型之外的整个文件夹 背景

.npmignore:忽略除给定文件类型之外的整个文件夹 背景,npm,gitignore,npmignore,Npm,Gitignore,Npmignore,我有一个typescript项目,我正在发布给npm。我所有的TS源都在一个名为src的文件夹中,它们被编译到一个名为dist的文件夹中src可能包含一些html模板,可能包括css文件和其他资产。作为构建的一部分,这些资源将全部复制到dist文件夹 源地图文件也会在dist文件夹中生成 发布时,我只希望发布dist文件夹,但希望dist文件夹中的源地图正常工作 我正在努力实现的目标 当我发布到npm时,我希望包括整个dist文件夹,但忽略src文件夹中的所有非ts文件 我需要.ts文件的原因是

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

源地图文件也会在dist文件夹中生成

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

我正在努力实现的目标 当我发布到npm时,我希望包括整个
dist
文件夹,但忽略
src
文件夹中的所有非ts文件

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

因此,我需要忽略
src
,除了
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

但是结果是一样的。

解决方案:

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

# ignore src

src/**/*

附加评论:

您最后的否定模式(即,
!src/***.d.ts
)可以省略。之前的否定模式(即,
!src/***.ts
)有效地使它变得多余

使用
!src/***.ts
将确保
src
目录中的任何
*.d.ts
文件也包括在内


完成修订
.npmignore

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

# standard ignores

node_modules/
karma.conf.js
spec/

# ignore src

src/**/*

# override above and include ts files

!src/**/*.ts