我想忽略项目中的所有 .sh 文件,除了位于特定目录中的文件,我们将目录称为 foo。
所以我们有:
project/
bar.sh
baz.sh
foo/
a.sh
b.sh
我不想发布bar.sh
到baz.sh
NPM,但我确实想发布a.sh
到b.sh
NPM。事实证明,我在 foo 目录之外有许多 .sh 文件,一举忽略所有这些文件会更方便。
我可以在我的.npmignore
文件中添加什么来实现这一点?
在.npmignore的文档中,它指出:
.npmignore
文件遵循与文件相同的模式规则.gitignore
:
在这种情况下,您将忽略所有.sh
文件(即*.sh
),然后使用撇号否定该模式!
并指定要包含的文件夹名称。例如:
示例 1
# ignore all .sh files
*.sh
# include .sh files in the folder foo
!foo/*.sh
使用此配置,(在下面显示的示例文件夹结构的上下文中),所有这些文件都将被忽略:a.sh
, b.sh
, e.sh
,f.sh
包含/发布了以下文件:c.sh
和d.sh
.
注意:e.sh
并且f.sh
使用此配置也会被忽略,因为它们位于子文件夹中。
示例 2
.sh
要在文件夹的任何子文件夹中包含/发布文件,foo
然后配置.npmignore
如下:
# ignore all .sh files
*.sh
# include .sh files in the folder foo and any inside its sub folders
!foo/**/*.sh
使用此配置(在下面显示的示例文件夹结构的上下文中),只有 files:a.sh
和b.sh
被忽略。所有其他.sh
文件均已发布。
示例文件夹结构
project
├── a.sh
├── b.sh
└── foo
├── baz
│ ├── e.sh
│ └── f.sh
├── c.sh
└── d.sh