Javascript Git忽略生成的扩展

Javascript Git忽略生成的扩展,javascript,git,Javascript,Git,我想让JavaScript.js文件处于git控制之下 但是,如果存在TypeScript.ts文件,我想忽略相关的.js文件 有没有办法用git实现这一点 编辑:最好不要更改目录和重构所有现有代码。这样做的典型方法是将任何编译后的输出放在某个分发目录中。您可以这样组织目录结构: src/ ... 各种JavaScript文件等。 距离/ ... 您正在使用的任何构建工具的编译输出 然后,在git中,您可以忽略dist目录,并假设任何要下拉该repo并处理它的人都将手动运行构建工具,或者在安装过

我想让JavaScript.js文件处于git控制之下

但是,如果存在TypeScript.ts文件,我想忽略相关的.js文件

有没有办法用git实现这一点


编辑:最好不要更改目录和重构所有现有代码。

这样做的典型方法是将任何编译后的输出放在某个分发目录中。您可以这样组织目录结构:

src/ ... 各种JavaScript文件等。 距离/ ... 您正在使用的任何构建工具的编译输出 然后,在git中,您可以忽略dist目录,并假设任何要下拉该repo并处理它的人都将手动运行构建工具,或者在安装过程中自动构建该工具

换句话说,不依赖特定的git功能集就可以更容易地组织它。这是JavaScript世界中非常常见的模式

如果不使用该方法,另一种方法是向要忽略的文件添加一些标识符。例如,您可以在所有要忽略的文件前面加上u,然后将此规则添加到.gitignore中。请参阅以下操作的原因:

\_* 第二种方法有一些缺点:

您使用的其他库可能会使用以类似标识符开头的文件名,并且会发生冲突 很难维持;如果发生冲突或改变了对结构的看法,您可能需要稍后更改标识符,并且您必须返回所有文件并更改名称。当然,这可以自动完成,但可能会很痛苦
希望这会有所帮助。

一种典型的方法是将任何编译后的输出放在某个分发目录中。您可以这样组织目录结构:

src/ ... 各种JavaScript文件等。 距离/ ... 您正在使用的任何构建工具的编译输出 然后,在git中,您可以忽略dist目录,并假设任何要下拉该repo并处理它的人都将手动运行构建工具,或者在安装过程中自动构建该工具

换句话说,不依赖特定的git功能集就可以更容易地组织它。这是JavaScript世界中非常常见的模式

如果不使用该方法,另一种方法是向要忽略的文件添加一些标识符。例如,您可以在所有要忽略的文件前面加上u,然后将此规则添加到.gitignore中。请参阅以下操作的原因:

\_* 第二种方法有一些缺点:

您使用的其他库可能会使用以类似标识符开头的文件名,并且会发生冲突 很难维持;如果发生冲突或改变了对结构的看法,您可能需要稍后更改标识符,并且您必须返回所有文件并更改名称。当然,这可以自动完成,但可能会很痛苦
希望这能有所帮助。

我没有使用typescript,但你不能要求typescript在不同的目录中生成javascript文件吗?要么在文件中添加一些标识符,例如_somefile.js,要么将js输出到不同的目录,例如生成的/somefile。js@redneb,@vlaz。移动文件不是我的职责。我至少希望我的git回购协议保持整洁。因此,我想知道这是否可以在不移动现有文件和重构所有现有路径的情况下完成,不是我不想自己,我没有使用typescript,但是你不能要求typescript在不同的目录中生成javascript文件吗?或者在文件中添加一些标识符,例如。,\u somefile.js或将js输出到其他目录,例如生成的/somefile。js@redneb,@vlaz。移动文件不是我的职责。我至少希望我的git回购协议保持整洁。因此,我想知道是否可以在不移动现有文件和重构所有现有路径的情况下完成这项工作,但我不想让自己知道这是JavaScript世界中非常常见的模式。不仅在JS中。几乎任何产生生成输出的东西都会这样做。一般来说,来源/产生的区别几乎是普遍的。这将是一个构建步骤,将所有生成的文件打包成一个可交付文件,在这种情况下,可以表示为将所有*.js文件放入/js/目录或其他目录中,但不包括*.ts,因为最终产品没有使用它。@JoshBeam:我投了赞成票,因为这是一个好建议。然而,它并没有回答我的问题。我不允许移动现有文件和重构。因此,我想找到另一种方法消除这些文件,供git考虑。这是JavaScript世界中非常常见的模式。不仅在JS中。几乎任何产生生成输出的东西都会这样做。一般来说,来源/产生的区别几乎是普遍的。是的
uld是一个构建步骤,用于获取所有生成的文件并以某种方式将其捆绑到可交付成果中,在这种情况下,可以表示为获取所有*.js文件并将其放在/js/目录或其他目录中,但不包括*.ts,因为最终产品未使用这些文件。@JoshBeam:我投了赞成票,因为这是一个很好的建议。然而,它并没有回答我的问题。我不允许移动现有文件和重构。因此,我想找到另一种方法消除这些文件,供git考虑。