每个开源项目都应该有的文件

2025-05-25

每个开源项目都应该有的文件

这正是我喜欢的方式。因此,我愿意与大家分享。但如果你的做法不同,并且不同意我接下来要说的话,我尊重你的意见。

好吧好吧!我看到你正在读这篇文章。这意味着你很好奇,想知道你的开源项目应该包含哪些文件。在深入探讨之前,我想你可能也喜欢我之前的文章,如果你对 Tailwind 感兴趣,一定要读一读。

好了,话不多说,让我们来看看本文的重点。好吧,我不会占用你们太多时间。如果你们只是想了解一下文件,以下是它们的列表:

  • .editorconfig
  • .gitignore
  • .prettierrc.json
  • .npmrc
  • 执照
  • 行为守则
  • 贡献
  • 变更日志
  • 自述文件

我看到你还在读。太棒了。这意味着你全神贯注地听着我的讲解(至少我希望如此)。趁着还有时间,让我来解释一下这些文件,以及为什么你的项目应该包含它们。

🎩 .editorconfig

我认为每个开源项目都应该有这个文件。为什么?很高兴你问了这个问题。你正在构建一个开源项目。你正在使用你的代码编辑器,并且该编辑器的配置是根据你的需求而定的。现在有人想为你的项目做贡献。当他们克隆你的代码库并在他们的代码编辑器中打开它时,他们的编辑器设置会有所不同。现在,如果他们提交 PR,你就会注意到代码中所有奇怪的样式变化。😐

这时,.editorconfig文件就派上用场了。你添加到此文件的设置最终会被所有其他代码编辑器使用。所以,如果你的项目中有这个文件,然后有人克隆了你的项目,他们也会得到一个包含所有编辑器设置的文件的副本。如果他们将缩进样式设置为空格,而你将其设置为制表符,那么在这个项目中,缩进将使用制表符。

以下是该文件内容的示例:

root = true

[*]
indent_style = tab
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true

Enter fullscreen mode Exit fullscreen mode

很方便。对吧?!

🏗 .gitignore

我不会对这个文件做太多解释,因为我知道你是一名开发者。如果你在这里,你一定听说过一个叫 GitHub 的奇怪地方,所有开发者都在这里展示他们的工作成果。你也一定用过 git 来控制软件的版本。

如果你的项目中有这个文件,那么 git 会忽略你添加到这个文件的所有文件或文件夹。因为你从未将 Node 模块提交到 GitHub,所以你只需在这个文件中添加 Node 模块即可。现在 Git 会直接忽略它,你git status在终端中写入时不会看到它。🥂

以下是该文件内容的示例:

node_modules/
/node_modules/

**.DS_Store*
ehthumbs.db
Enter fullscreen mode Exit fullscreen mode

✨ .prettierrc.json

你需要编写美观易读的代码。Prettier 正好可以满足你的需要。由于我的开源工作主要使用 JavaScript 和 Node.js,所以我总是安装 Prettier 作为我的开发依赖项,并在package.json文件中添加一个额外的脚本:

{
"scripts": {
        "format": "prettier --write \"./**/*.{js,json}\"",
    },

}
Enter fullscreen mode Exit fullscreen mode

这个脚本允许我使用 来格式化我的整个代码库npm run format。如果你仔细查看脚本,你会发现它实际上包含一个正则表达式。你可以修改它,使其包含所有你想要格式化的不同文件类型。

好吧,我还需要设置一些 Prettier 需要遵循的基本规则。否则,不同的代码编辑器会设置不同的 Prettier 配置。所以,.prettierrc.json你需要在这个文件中定义所有与 Prettier 相关的配置。这样,如果你npm run format现在运行,Prettier 就会遵循这些配置。⚡️

以下是该文件内容的示例:

{
    "trailingComma": "none",
    "singleQuote": true,
    "printWidth": 60,
    "useTabs": true,
    "tabWidth": 4,
    "semi": true
}
Enter fullscreen mode Exit fullscreen mode

💥 .npmrc

如果您想在项目中本地设置任何与 npm 相关的配置,可以使用此文件添加它们。对我来说,我只是使用此文件而不生成package-lock.json文件。因为我在生产环境中不需要它。

以下是该文件内容的示例:

package-lock=false
Enter fullscreen mode Exit fullscreen mode

🔑 许可证

每个(我的意思是每个)开源项目都应该获得许可。这是一个许可证文件,其内容决定了您要使用的许可证。由于我编写了 10 多个开源工具,因此我经常使用 MIT 许可证。

您可以通过在终端中运行单个命令轻松创建此文件:

npx license [license_name]

# for instance, npx license MIT
Enter fullscreen mode Exit fullscreen mode

🧑🏻‍💼行为准则

这是开源项目的另一个必备文件。我觉得它的名字很容易理解。你可以使用一个命令在项目中添加行为准则。只需打开终端并运行以下命令:

npx conduct
Enter fullscreen mode Exit fullscreen mode

🙋🏻 贡献

这是一个 Markdown 文件,其中包含您希望开源项目的潜在贡献者遵循的所有说明。每个人的说明都不同。您可以在这里找到我通常使用的说明

‼ 更新日志

每个开源软件都应该进行适当的版本控制。每次发布新版本,都会产生一个新版本。这是另一个 Markdown 文件。它包含你在项目多个版本中所做的更改。

例如,在 1.0.0 版本中,您发布了项目的 Beta 版本。在 1.1.0 版本中,您修复了一些错误。现在,您可能想将所做的更改添加到changelog.md文件中。这样,如果有人正在使用您的工具,他们就可以阅读此文件并立即了解版本间的具体更改。💻

你可以按照自己喜欢的方式编写变更日志文件。以下是示例:


### v1.1.0

Fixed bug _____
Improve code of ____
Implemented feature ____

### v1.0.0

Implemented feature x that does ___
Implemented feature y that does ___
Implemented feature z that does ___
Enter fullscreen mode Exit fullscreen mode

我不会深入讨论如何对软件进行版本控制。也许我会另写一篇文章来探讨这个问题。

📖 自述文件

我想这是项目中最神奇的文件了。这个文件中的内容会显示在你的项目仓库中。所以,它主要用来记录文档。如果你想让你的项目成功,就必须拥有优秀的文档。

好了,各位,这就是你们应该添加到开源项目中的所有文件。你们可以看看我的这个开源项目,我在其中用到了所有这些文件。如果你们喜欢,别忘了点赞哦。😛

您还可以在GitHub上关注我,就像许多其他魔术师一样,我的所有魔术都在这里。

下次再见,再见。🤞🏻

文章来源:https://dev.to/msaaddev/files-every-open-source-project-must-have-2mmm
PREV
作为一名开发者如何应对焦虑和抑郁
NEXT
RxJS 从头开始​​:可观察对象简介、可观察对象和订阅者、拆解逻辑、订阅、结论