gpt4 book ai didi

node.js - 大型 NPM repo - 需要将大型测试套件放在单独的项目中吗?

转载 作者:行者123 更新时间:2023-11-28 21:04:15 25 4
gpt4 key购买 nike

我有一个 NPM 项目(我们称它为“X”),它正在推送 15000 行代码。该项目的测试套件可能接近 4K 线。测试都在测试文件夹中。我想避免将测试目录发布到 NPM,这样人们就不必安装额外的 4K+ 行代码。这将节省磁盘空间并让人们感到高兴,因为我可以宣传更小的占用空间。

我认为有几个选择:

  1. 过去,我在 Github 上推送到 master 和 NPM 时尝试删除文件夹 - 在尝试将修补程序 merge 回开发时(根据我的经验),这是版本控制的噩梦。我不认为我想重温这个。在移动到 master 分支时删除测试目录可能是一场灾难。

  2. 我可以将测试移至完全不同的 NPM 项目。这似乎是一个更好的主意。但是,我不确定具体如何执行此操作。

有没有人有这方面的经验,有好的解决办法吗?也许是第三种方式?

最佳答案

我建议您将测试用例保存在同一个存储库中,并且您仍然可以将它们保存在那里而不将它们发布到 npm。有两种方法可以告诉 npm 要发布哪些文件:

首先,您可以将要发布的文件和目录添加到"files" fieldpackage.json。例如,如果您有一个 dist 目录,其中包含您要发布的所有代码(如果您通过 Babel、Typescript、minifier 等运行代码,通常会出现这种情况),您的包。 json 可能看起来像这样:

{
...
"files": [
"dist"
]
}

不在此列表中的文件和目录将不会被发布。无论此设置如何,一些文件,如 package.jsonREADMECHANGELOGLICENSE 始终发布.

其次,您可以将您不想发布的文件和目录添加到.npmignore file ,其工作方式类似于 .gitignore 文件。例如,如果您(如您的情况)不想在 test/ 目录中发布文件,您的 .npmignore 文件可能如下所示:

test/

同样,文件 package.jsonREADMECHANGELOGLICENSE 将始终发布,无论你的 .npmignore 文件。

您使用这些选项中的哪一个取决于您,并且可能更适合不同的项目结构。

关于node.js - 大型 NPM repo - 需要将大型测试套件放在单独的项目中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42322528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com