【问题标题】:Create a npm package with dependencies创建具有依赖项的 npm 包
【发布时间】:2022-10-30 18:40:25
【问题描述】:

我有一个分布式 node.js 项目,我想创建一个包含项目域的独立包。

首先,我创建了一个名为“common”的包,其中包含一些使用以下工具的实用程序:

npm pack

命令并创建 common.tgz 文件。接下来我使用相同的方法创建了model.tgz文件,请注意模型包使用通用包所以我将它安装在temp文件夹的“模型”中,因此模型包具有以下结构:

|_ model
  |_ tmp
    |_common.tgz

它似乎工作。

现在我想在我的主项目中导入 model.tgz 并将其放入临时文件夹,但是当我运行

npm i 

我得到的命令:

npm 错误! enoent ENOENT:没有这样的文件或目录,打开 'prj_name/backend/functions/functions/tmp/common-1.0.0.tgz' npm 错误! enoent 这与 npm 找不到文件有关。

我通过在我的主要项目中这样做来解决它:

|_ main
  |_ tmp
    |_model.tgz 
    |_tmp
      |_common.tgz

由于这有点令人困惑,有没有办法在 model.tgz 中包含 common.tgz 而不需要在任何地方重新导入?谢谢。

【问题讨论】:

    标签: javascript node.js npm npm-package


    【解决方案1】:

    原来你可以在 package.json 中使用一个字段:

     "bundledDependencies":[],
    

    所以在我的情况下,包模型具有以下 package.json:

     "dependencies": {
        "common": "file:tmp/common-2.0.0.tgz"
      },
      "bundledDependencies":["common"],
    

    现在主要项目只有:

    - main
      |_ tmp
        |_model.tgz 
        
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-17
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2016-12-11
      • 1970-01-01
      • 2011-02-28
      相关资源
      最近更新 更多