【问题标题】:How to install Node.js packages from Git repository inside specific folders如何从特定文件夹中的 Git 存储库安装 Node.js 包
【发布时间】:2019-10-11 20:42:54
【问题描述】:

我知道如何从 Git 安装,我的问题不同:

我有一个类似这样结构的存储库:

project
--packages
  --moduleA
    --dist
      --index.js
      --package.json
    --src
      --index.mjs
    --package.json
  --moduleB
    --dist
      --index.js
      --package.json
    --src
      --index.mjs
    --package.json

我想知道是否可以使用同一个 Git 存储库同时安装 moduleAmoduleB都安装在各自的 dist 目录中。换句话说,如果他们各自的package.json 将他们的模块名称声明为@company/moduleA@company/moduleB,那么我希望我的node_modules 看起来像

node_modules
--@company
  --moduleA
    --index.js
    --package.json
  --moduleB
    --index.js
    --package.json

这可以使用npmyarn 吗?

【问题讨论】:

    标签: javascript node.js git npm


    【解决方案1】:

    是的,这是可能的。你可以使用napa

    将此添加到您的package.json。您可以使用文件夹名称作为napa 对象中的键。

    {
      "scripts": {
        "install-from-github": "napa"
      },
      "napa": {
        "install_as_foo": "username/repo",
        "install_as_bar": "git@example.com:user/repo"
      }
    }
    

    运行 npm run install-from-github 运行 napa;或者只是做npx napa

    实际完整示例:这将在@company/test1@company/test2 下安装noop2 repo

    {
      "name": "test",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "author": "",
      "license": "ISC",
      "dependencies": {
        "napa": "^3.0.0"
      },
      "scripts": {
        "install-from-github": "napa"
      },
      "napa": {
        "@company/test1": "yoshuawuyts/noop2",
        "@company/test2": "yoshuawuyts/noop2"
      }
    }
    

    输出

    【讨论】:

    • 我阅读了文档,然后阅读了您的示例,但我不完全确定如何在我的 package.json 中编写此内容;您能否添加如何使用问题的 sn-p 作为基础来应用配置?谢谢。
    • 完整示例的更新答案
    • 对不起,这不起作用。它将整个存储库放在节点模块中,并且不获取每个模块的特定 dist 文件夹。实际上,您更新的示例假设有两个存储库,这不是问题所要求的。如果我想要那个功能,我会使用yarn,因为napa 甚至不会更新package-lock.js 文件。对不起。
    【解决方案2】:

    我目前已经和gitpkg 和解,yarn 有包管理器。

    【讨论】:

      猜你喜欢
      • 2019-08-24
      • 2012-06-06
      • 2016-07-08
      • 2013-01-24
      • 2010-10-13
      • 2020-07-01
      • 2014-05-07
      相关资源
      最近更新 更多