如何从 git 中排除打字稿编译的文件
Posted
技术标签:
【中文标题】如何从 git 中排除打字稿编译的文件【英文标题】:how to exclude typescript compiled files from git 【发布时间】:2016-03-01 16:48:42 【问题描述】:我有一个带有几个 asp.net 5 项目的 Visual Studio 解决方案。在每个项目中,我都有一个 wwwroot 目录,在这个目录中还有一个 app 目录,其中包含 html 视图、.js 和 .map 文件,它们是在这个位置编译的打字稿文件。 使用标准配置,这些文件包含在签入中。如何配置 .gitignore 文件,以便忽略解决方案中每个项目的 wwwroot\app 目录的每个子目录中的所有 .js 和 .map 文件?
【问题讨论】:
如果您有多个项目并且所有项目都需要相同的 git 忽略规则集,那么您可以使用 全局 Git 忽略规则 概念来提及单个 gitignore 文件并在所有项目中使用您的项目,而不是创建单独的 gitgnore 文件。但是这个全局 git 忽略文件不会是共享副本,您的其他队友也不会受益。请参考Atlassian Git查看步骤。 【参考方案1】:wwwroot/app/**/*.js
wwwroot/app/**/*.map
**
将匹配 app
中的所有内容,以及多个级别的子目录。
【讨论】:
如果你的 js 不是编译文件,例如库,会发生什么? @DiegoGonzález 库应该放在单独的文件夹中,而不是/app
(例如 /lib
、/node_modules
等)
@Jay 将输出放入单独文件夹的一个问题是您的代码没有在与 src 完全相同的上下文中运行,因此,例如,如果您 fs.readFile('./foo.md')
那么它将失败 - - 除非您有单独的复制任务将所有非 js 文件移动到 /dist 目录中。 IMO tsc 应该允许您使用自定义文件扩展名输出,例如.compiled.js
然后可以显式忽略
*.js 也覆盖了*.js.map
@Technotronic 那不是*.js.*
吗?【参考方案2】:
将以下行添加到您的 .gitignore:
# Ignores compiled TypeScript files
**/wwwroot/app/**/*.map
**/wwwroot/app/**/*.js
你可以阅读更多关于 gitignore 和支持的模式here。
**
递归匹配子目录。第一个是针对项目的,第二个是因为你提到的
在 wwwroot\app 目录的每个子目录中
【讨论】:
以上是关于如何从 git 中排除打字稿编译的文件的主要内容,如果未能解决你的问题,请参考以下文章