由于结构原因,您可以将 .gitignore 放在 config 等子目录中而不是根目录中吗?

Muh*_*mer 3 git gitignore

我有大量文件进入根文件夹,我正在寻找清理它。

例如

.env
.babelrc
.eslintignore
.eslintrc.json
webpack.config.js
gulpfile.js
sequelize.json

... list goes on
Run Code Online (Sandbox Code Playgroud)

我想将它们全部移动到配置文件夹中,因为它们就是这样。

那么是否可以将 gitignore 从子目录应用到父目录。

似乎每个工具都想将其配置文件塞到根目录中

aws、gulp、webpack、vscode、数据库、react、linting...

Fra*_*rax 5

这在技术上可能可行,也可能不可行(可能不是一种稳健的方式),但无论如何,我的答案是

不。

目录确实是存放这些东西的正确位置,原因如下:

  • 它只是工作,没有脆弱或复杂的怪癖,
  • 将配置隐藏在某个目录中将使寻找它的人更难找到它(例如,当出现问题时),
  • 隐藏配置将使发现配置文件的存在变得更加困难,
  • 这只是这个东西的标准地方。

您知道,您只是不希望人们(尤其是您自己)花费三个小时来调试某个问题,却发现它是由隐藏良好的配置文件引起的,而这正是我所期望的结果。

隐藏配置直接违背了最小惊喜原则,这是一个坏主意。

“但是我的文件在配置期间丢失了!”

如果您的文件在配置文件之间丢失,那么您正在解决错误的问题。您应该将您的内容放在子目录中,例如srcdocstest或任何对您的情况有意义的地方。这是标准方式,也是人们所做的(至少在 JavaScript 世界中,这显然是你的情况,但与任何其他语言实际上都是一样的)。直接在根目录中仅存在配置、自述文件和许可证。

package.json改为放入配置

另一方面,对于您提到的特定工具,配置通常可以包含在包文件(package.json)中。因此,如果文件的激增让您感到烦恼,一个简单的解决方案是将所有可能的配置移至那里。该文件会变得很大(无论如何),但它可能仍然比多个文件更好。