如何从特定文件夹内的Git存储库安装Node.js软件包

时间:2019-10-10 12:49:21

标签: javascript node.js git npm

我知道如何从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

2 个答案:

答案 0 :(得分:0)

是的,有可能。您可以为此使用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存储库

{
  "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"
  }
}

输出

enter image description here

答案 1 :(得分:0)

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