【问题标题】:Should a svelte package be a dependency or a devDependency?苗条的包应该是依赖项还是 devDependency?
【发布时间】:2021-06-30 08:07:59
【问题描述】:

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

在大多数像svelte-material-uisvelte-routing 这样的svelte 包中,安装指南告诉安装包为dependency。但是,由于 svelte 将在构建期间编译此包,因此将使用它的新库不需要安装此 svelte 包。所以我不明白为什么要成为dependency

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

【问题讨论】:

    标签: javascript npm dependency-management svelte


    【解决方案1】:

    我相信这是个人意见。如果您没有将代码作为 NPM 包分发,那么区别应该很小。例如,请参阅this related discussion

    根据我对 Web 项目的经验,区分用于构建/测试的依赖项 (devDependencies) 与那些“在运行时使用”的依赖项(依赖项)是有帮助的。没错,使用 Svelte,在运行时不使用任何文字代码,但随后一切都将是 devDependency,因此您没有得到有用的分离。

    The NPM documentation 表示区别应该是生产与开发/测试。

    【讨论】:

      【解决方案2】:

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

      否则,我更愿意将所有内容保留为 devDependency。我认为这是有道理的,因为 Svelte 是一个编译器,并且这些包仅在编译时才需要。但是,我认为将所有内容都设置为 dependency 并没有什么坏处。

      【讨论】:

      • 这个来源会很好。不是我怀疑,只是想了解更多
      • @BrunoEly:这个问题经常出现在 SvelteKit 的不和谐聊天中。如果您考虑一下无服务器功能的工作方式,这也是有道理的。
      猜你喜欢
      • 2019-11-04
      • 2020-07-08
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      • 2013-02-10
      • 1970-01-01
      • 2019-04-11
      相关资源
      最近更新 更多