【问题标题】:.npmignore: ignore whole folder except given file types.npmignore:忽略整个文件夹,除了给定的文件类型
【发布时间】:2018-01-04 09:51:01
【问题描述】:

背景

我有一个要发布到 npm 的打字稿项目。我所有的 TS 源都在一个名为 src 的文件夹中,这些源被编译到一个名为 dist 的文件夹中。 src 可能包含一些 html 模板,可能是 css 文件和其他资产。作为构建的一部分,这些资产都被复制到 dist 文件夹中。

dist 文件夹中也会生成源映射文件

发布时我只想发布 dist 文件夹,但我希望 dist 文件夹中的源映射能够工作。

我想要达到的目标

当我发布到 npm 时,我想包含整个 dist 文件夹,但忽略 src 文件夹中的所有非 ts 文件。

我需要.ts 文件的原因是因为 dist 文件夹中的源映射指向这些源文件。调试时,我需要原始源代码才能在浏览器中看到它。

所以,我需要忽略src,除了src 中的.ts 文件

我尝试过的

我尝试了以下方法,根据我的研究,据我所知,这些方法应该有效。

# standard ignores

node_modules/
karma.conf.js
spec/

# ignore src

src/

# override above and include ts files

!src/**/*.ts
!src/**/*.d.ts

当我使用这个文件打包时,我会在包中获得整个 src 文件夹,包括 html、css 和图像文件。

我不确定上述方法是否适用于src 文件夹下的 ts 文件,所以我也尝试了

!src/actualFile.ts

但结果是一样的。

【问题讨论】:

    标签: npm gitignore npmignore


    【解决方案1】:

    解决方案:

    将通配符 **/* 添加到您的忽略 src 模式中,使其变为:

    # ignore src
    
    src/**/*
    

    补充说明:

    您的最后一个否定模式(即!src/**/*.d.ts)可以省略。它被之前的否定模式(即!src/**/*.ts)有效地冗余了。

    单独使用!src/**/*.ts 将确保src 目录中的所有*.d.ts 文件也包括在内。


    完成修改.npmignore

    为清楚起见,完整修订的.npmignore(根据您提供的示例)应该是:

    # standard ignores
    
    node_modules/
    karma.conf.js
    spec/
    
    # ignore src
    
    src/**/*
    
    # override above and include ts files
    
    !src/**/*.ts
    

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 2011-12-09
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2013-07-22
      相关资源
      最近更新 更多