首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.gitignore / .npmignore映射到tar排除

将.gitignore / .npmignore映射到tar排除
EN

Stack Overflow用户
提问于 2018-05-15 20:23:52
回答 1查看 318关注 0票数 0

假设我有一个.gitignore或.npmignore文件,其内容如下:

代码语言:javascript
复制
logs
*.sh
*.log

并不是说.npmignore文件被设计成像.gitignore文件一样被解释。

我的问题是--如何使用标准.npmignore / .gitignore文件的内容并将它们映射到tar命令的--exclude选项?

基本上,我需要这样做:

代码语言:javascript
复制
find -not -path (whatever is in gitignore) | tar

或者只是这个:

代码语言:javascript
复制
tar --exclude="whatever matches gitignore/npmignore"

后者看起来不错,但是如何将.gitignore / .npmignore中的内容映射到命令行呢?有什么包裹能做到吗?

EN

回答 1

Stack Overflow用户

发布于 2018-05-15 21:15:51

正如我所怀疑的,.gitignore / .npmignore看起来是为了直接映射到命令行工具,如findtar等。

因此,在Node.js/TypeScript代码中,我只需要这样做,它看起来很有效:

代码语言:javascript
复制
   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(' ')
    };
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50358631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档