我知道已经有很多关于dependency
和devDependency
之间区别的帖子了,但我没有找到任何解释苗条情况的帖子,所以让我们在这里打开这篇。
在大多数苗条的软件包中,如苗条的材料ui或苗条的布线,安装指南告诉将软件包安装为dependency
。然而,由于svelte将在构建期间编译此包,将使用它的新库不需要安装此svelte包。所以我不明白为什么它必须是dependency
。
也许这个问题是基于观点的,但最好至少对使用什么有一个小想法。
在SvelteKit(Sapper的下一个版本(中,dependency
和devDependency
之间有一个主要区别:(服务器端(端点中使用的任何模块都必须是dependency
。如果没有,则当部署在无服务器平台上时,该项目可能无法工作,尽管它将在本地工作。
否则,我宁愿将所有内容都保留为devDependency
。我认为这是有道理的,因为Svelte是一个编译器,并且包只在编译时需要。然而,我认为把所有东西都放在dependency
中不会有什么坏处。
我认为这是个人观点。如果您没有将代码作为NPM包分发,那么区别应该是最小的。例如,请参阅此相关讨论。
根据我对web项目的经验,区分用于构建/测试的依赖项(devDependencies(和那些"依赖"的依赖项是很有帮助的;在运行时使用";(依赖项(。你是对的,使用Svelte,在运行时没有使用任何文字代码,但所有内容都是devDependency,所以你不会得到有用的分离。
NPM文件指出,区别应该是生产与开发/测试。