svelte 包应该是依赖项还是 devDependency?

joh*_*pin 20 javascript dependency-management npm svelte

我知道已经有很多关于dependency和之间的区别的帖子devDependency,但我没有找到任何解释 svelte 情况的帖子,所以让我们在这里打开这个。

在大多数 svelte 软件包(如svelte-material-uisvelte-routing )中,安装指南告诉您将软件包安装为dependency. 但是,由于 svelte 将在构建期间编译此包,因此使用它的新库不需要安装此 svelte 包。所以我不明白为什么它必须是一个dependency.

也许这个问题是基于意见的,但至少对使用什么有一个小小的想法会很好。

Lef*_*ium 13

dependency在 SvelteKit(Sapper 的下一版本)中,和之间有一个主要区别devDependency:(服务器端)端点中使用的任何模块都必须是dependency. 如果不是,该项目在部署在无服务器平台上时可能无法工作,尽管它可以在本地工作。

否则,我更喜欢将所有内容保留为devDependency. 我认为这是有道理的,因为 Svelte 是一个编译器,并且仅在编译时才需要这些包。但是,我认为将所有内容都作为dependency.

  • 这个的来源会很好。并不是我怀疑,只是想了解更多 (3认同)

ede*_*ine 11

我相信这是个人意见。如果您不将代码作为 NPM 包分发,则区别应该很小。例如,请参阅此相关讨论

根据我在 Web 项目方面的经验,区分用于构建/测试的依赖项 (devDependency) 与“运行时使用”的依赖项(依赖项)很有帮助。你是对的,使用 Svelte,在运行时不会使用任何文字代码,但是一切都将是 devDependency,所以你不会得到有用的分离。

NPM 文档指出,区别应该是生产与开发/测试。