Node.js 构建模块时,我们在何处保存演示应用依赖项?

Node.js 构建模块时,我们在何处保存演示应用依赖项?,node.js,node-modules,package.json,Node.js,Node Modules,Package.json,我正在构建我的第一个节点模块。模块内部有一个演示应用程序。演示仅在开发过程中有用。我们把演示的依赖项放在哪里 首先想到的答案是将它们放入devdependency,因为它们只在开发过程中有用。也就是说,我通常为构建工具保留devdependency,而不是为运行(演示)应用程序的模块保留 所以问题是,当开发一个包含自己的演示应用程序的模块时,应该将演示应用程序的依赖项放在哪里 依赖关系 devDependencies 其他地方 这是模块: 下面是我的模块中依赖关系的高级图。()中的位置基于P

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

首先想到的答案是将它们放入
devdependency
,因为它们只在开发过程中有用。也就是说,我通常为构建工具保留
devdependency
,而不是为运行(演示)应用程序的模块保留

所以问题是,当开发一个包含自己的演示应用程序的模块时,应该将演示应用程序的依赖项放在哪里

  • 依赖关系
  • devDependencies
  • 其他地方
这是模块:

下面是我的模块中依赖关系的高级图。
()
中的位置基于Pranesh的答案

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

当有人安装我们的模块时,我们只希望他们下拉
我的模块/第三方模块
。当有人克隆我们的回购协议时,我们希望他们也能够下拉
演示/第三方模块

在大多数情况下,演示应用程序将取决于您构建的模块,在您的情况下,
aurelia open id connect
。如果您对演示应用程序有模块以外的任何其他依赖项,则应将其归入
可选依赖项

提及


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

我很难理解演示应用程序如何依赖于模块本身。例如,下面是我的模块结构:。该模块位于
src/open id connect/
内部,演示应用程序位于
src/
内部。发布模块时,
dist
仅包含
src/open id connect
的内容:我是否以非传统方式构建演示应用程序?示例不是依赖项,而是依赖于模块。请看。这些示例取决于模块(express)OK。这对我来说很有意义,演示不是依赖项。这很清楚。不过,这个演示有自己的依赖项,我想知道的是,这些依赖项存储在哪里。它应该在
optionalDependencies
中。编辑了答案,让它更清晰。它很完美。使用
.npmignore
防止示例进入已发布的包中。