构建模块时,我们在哪里保存演示应用程序依赖项?

Where do we save demo app dependencies when buiding a module?

我正在构建我的第一个节点模块。模块内部有一个演示应用程序。该演示仅在开发期间有用。我们将演示的依赖项放在哪里?

想到的第一个答案是将它们放入devDependencies,因为它们仅在开发期间有用。话虽如此,通常我会为构建工具保留 devDependencies,而不是 运行(演示)应用程序的模块。

那么问题来了,当开发一个包含自己的演示应用程序的模块时,将演示应用程序的依赖项放在哪里?

这是模块:https://github.com/shaunluttin/aurelia-open-id-connect

这是我的模块中依赖关系的高级图表。 () 中的位置基于 Pranesh 的回答。

demo
  third-party-modules (optionalDependencies)
  my-module
    third-party-modules (dependencies)

当有人安装我们的模块时,我们希望他们只下载 my-module/third-party-modules。当有人克隆我们的 repo 时,我们希望他们 top 也能够下拉 demo/third-party-modules.

在大多数情况下,演示应用程序将取决于您构建的模块,在您的情况下 aurelia-open-id-connect。如果您的模块以外的演示应用程序有任何其他依赖项,它应该在 optionalDependencies.

参考this

这些模块应该使用 -O 选项安装。例如,npm i express -O