【问题标题】:Notating Multiple Modules in the Same Package.json File在同一个 Package.json 文件中标注多个模块
【发布时间】:2014-08-20 03:44:43
【问题描述】:

我正在尝试打包一些我一直在研究的模块。我有五个模块,分成五个文件。其中四个是我希望用户能够安装的实际外向模块。另一个是支持模块,它们都需要正常运行。它们都存储在同一个目录中。我希望能够将每个指定为同一目录中的单独模块。但据我所知,在package.json 中只能定义一个模块。

有没有办法指定多个模块?如果不是,那意味着这一定是一个不好的做法。我应该如何构建模块的导出以将其移入一个主模块?

【问题讨论】:

  • 为什么不将它们全部发布为单独的模块?你永远不知道社区将如何使用它们,他们可能会从 5 个中选择一个来使用。
  • @dylants 但是我该怎么做呢?我能找到的唯一方法是将它们分别放在一个单独的目录中。
  • 是的,每个都需要位于不同的目录中,很可能在您的目录结构中的同一级别。当一个需要另一个时,您将其添加到它的依赖项中并 npm install 它。然后每个都包含它自己的源代码、测试代码和package.json 文件。
  • 好的...如果这是唯一的选择,我将不得不接受它。你能写一个答案让我标记吗?
  • 当然,我会这样做,但我认为从维护的角度来看,从长远来看,当您管理多个节点包可能有单独的要求但不直接影响他人。

标签: node.js npm node-modules


【解决方案1】:

目前不支持为您将在同一目录中发布的每个模块创建单独的 package.json 文件。真的,这是有道理的,因为您部署的每个包都可能有问题、功能请求、错误等,需要单独处理,不要强制更新其他包。将它们分开将使您可以专注于独立维护每个模块,并允许这些模块的使用者单独包含它们。许多大型项目从创建他们认为人们会喜欢的东西开始,最终每个人实际使用的东西都是单独创建的随机子项目。

因此,单独的目录和单独的 package.json 文件,然后在 package.json 中为每个文件包含依赖项。如果您还没有看到这里有几个很好的文章来帮助开发节点包:

【讨论】:

  • 当我的子模块尝试require()主模块时,它们使用什么路径?假设我将每个(包括主要的)放在同级目录中,我不知道如何引用其他目录。在我创建了包文件后,这个名称会起作用吗?
  • 如果它们是您已部署到 npm 的真正独立模块,那么您将在没有文件路径的情况下引用它们。所以如果你有一个叫做“awesome-module”的模块,你会说require('awesome-module')。这意味着您必须首先 npm publish 每个模块,然后才能要求代码正常工作。但是,如果您记录他们并解释每个人的工作,其他人也可以从您的工作中受益。
  • 在您发布这些模块时,请牢记semver 表示您的软件包版本。
  • 对于开发,可以使用npm link命令在本地引用模块,这样可以在发布前进行测试。见:docs.npmjs.com/cli/link
猜你喜欢
  • 2012-12-24
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 2018-11-01
  • 2016-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多