我有一个静态.npmignore
文件
foo
bar
baz
在里面。当我发布到 NPM 时,这 3 个目录中的内容将被忽略。
我的问题是,有没有办法npm publish
在命令行使用时动态添加要忽略的文件夹?
就像是:
npm publish --ignore=.r2g
在这里我们可以忽略一个名为.r2g
我有一个静态.npmignore
文件
foo
bar
baz
在里面。当我发布到 NPM 时,这 3 个目录中的内容将被忽略。
我的问题是,有没有办法npm publish
在命令行使用时动态添加要忽略的文件夹?
就像是:
npm publish --ignore=.r2g
在这里我们可以忽略一个名为.r2g
一、静态解决方案:
您可以在.npmignore
每个要排除的目录中包含一个文件。正如文档所述:
与 git 一样,npm 在包的所有子目录中查找 .npmignore 和 .gitignore 文件,而不仅仅是根目录。
我在https://github.com/dral/npmignore-example(和相应的包npmignore-example
)中创建了一个示例。
文件结构 index.js .npmignore bar/index.js baz/index.js foo/index.js /.npmignore
根 .npmignore 仅删除 baz 目录。嵌套的 foo/.npmignore 删除所有内容(从现在开始)。
安装的包只包含
index.js
bar/index.js
为了动态地执行此操作,您可以使用.npmignore
在选定文件夹中添加然后删除一个简单文件的脚本。
echo '*' > .r2g/.npmignore && npm publish && rm .r2g/.npmignore
然后,如果您需要自动执行此操作,请考虑使用考虑环境变量prepublish
的postpublish
脚本,以便您可以使用类似NPM_IGNORE=.r2g npm publish
.
希望这可以帮助。