动态添加文件夹,以便在使用npm publish

时间:2018-09-30 02:07:48

标签: node.js npm npm-publish

我有一个静态.npmignore文件,

foo
bar
baz

在其中。当我发布到NPM时,这3个目录中的内容将被忽略。

我的问题是,在命令行使用npm publish时,有没有一种方法可以动态添加要忽略的文件夹?

类似的东西:

npm publish --ignore=.r2g

在这里我们可以忽略名为.r2g的文件夹

这里是the npm-publish docs

1 个答案:

答案 0 :(得分:4)

首先,一个静态解决方案:

您可以在每个要排除的目录中包含一个.npmignore文件。 正如doc所述:

  

像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

然后,如果您需要自动执行此操作,请考虑使用考虑到env变量的prepublishpostpublish脚本,以便可以使用类似NPM_IGNORE=.r2g npm publish的脚本。

希望这会有所帮助。