我有一个静态的.npmignore
文件,
foo
bar
baz
在里面。当我发布到NPM时,这3个目录中的内容将被忽略。
我的问题是,在命令行中使用
npm publish
时,有没有一种方法可以动态添加要忽略的文件夹?就像是:
npm publish --ignore=.r2g
在这里我们可以忽略名为
.r2g
的文件夹这是the npm-publish docs
最佳答案
首先,一个静态解决方案:
您可以在每个要排除的目录中包含一个.npmignore
文件。
如doc所述:
我在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变量的
prepublish
和postpublish
脚本,以便可以使用诸如NPM_IGNORE=.r2g npm publish
之类的脚本。希望这可以帮助。