假设我有一个.gitignore或.npmignore文件,其内容如下:
logs
*.sh
*.log并不是说.npmignore文件被设计成像.gitignore文件一样被解释。
我的问题是--如何使用标准.npmignore / .gitignore文件的内容并将它们映射到tar命令的--exclude选项?
基本上,我需要这样做:
find -not -path (whatever is in gitignore) | tar或者只是这个:
tar --exclude="whatever matches gitignore/npmignore"后者看起来不错,但是如何将.gitignore / .npmignore中的内容映射到命令行呢?有什么包裹能做到吗?
发布于 2018-05-15 21:15:51
正如我所怀疑的,.gitignore / .npmignore看起来是为了直接映射到命令行工具,如find、tar等。
因此,在Node.js/TypeScript代码中,我只需要这样做,它看起来很有效:
const keep: Array<RegExp> = [
/^README/i,
/^package\.json$/,
/^LICENSE/i,
/^LICENCE/i,
/^CHANGELOG/i
];
export const npmIgnoreToArray = function (npmignore: string): Array<string> {
return String(npmignore).trim().split('\n').map(v => String(v).trim())
.filter(Boolean)
.filter(v => !v.startsWith('#'))
.filter(function (v) {
return !keep.some(function (rgx) {
return rgx.test(v);
})
});
};
export const npmIgnoreToTARExclude = function (npmignore: Array<string>): string {
return npmignore.map(function (v) {
return `--exclude='${v}'`;
})
.join(' ')
};https://stackoverflow.com/questions/50358631
复制相似问题