【问题标题】:Share code between multiple projects/folders/apps within same repository在同一存储库中的多个项目/文件夹/应用程序之间共享代码
【发布时间】:2019-01-14 20:16:28
【问题描述】:

我有一个存储库,其中包含多个文件夹中的多个项目或应用程序,每个文件夹都有自己的 package.json 文件和 node_modules。所有这些项目都有一个具有相同代码的文件,并且在每个项目中都是多余的。我想把它拿出来并以某种方式共享。 一种方法是使用 npm 包。在这里想其他方法。如果您有任何想法,请告诉我?

【问题讨论】:

    标签: javascript node.js git


    【解决方案1】:

    如果项目在相同的文件夹结构上运行,您可以简单地移动共享父文件夹中的文件并从那里获取它。 如果您有 DevOps 周期,您可以将该文件复制到构建步骤中的每个文件夹中。 GitLab CI 让它变得非常简单,但它可以在 Git 中轻松完成。 然而,如果代码库不是专有的,npm 包似乎是最长期稳定和方便的解决方案。

    【讨论】:

      【解决方案2】:

      您可以为这个单个文件创建一个外部模块(也许在未来您将有更多文件在您的项目之间共享)

      • 为此单个文件初始化一个新项目

      mkdir my-external-lib ; cd my-external-lib npm init

      您需要编辑package.json

      {
          "name": "my-external-lib",
          "version": "0.1.0",
          "description": "Library function to all my project",
          "main": "index.js",
          "private": true,
          "scripts": {
              "test": "echo \"Error: no test specified\" && exit 1"
          },
          "repository": {
              "type": "git",
              "url": "<url-path-or-your-external-library>"
          },
          "keywords": [],
          "author": "<you>",
          "license": "ISC",
          "bugs": {},
          "homepage": "<url-path-or-your-external-library>#readme",
          "dependencies": {}
      }
      

      不能原谅你在 github 上公开你的项目

      这个解决方案的问题是,每次更新外部包时都需要rm -rf node_modules; npm i。我不知道为什么npm update 不起作用。

      【讨论】:

        猜你喜欢
        • 2021-07-22
        • 2012-01-03
        • 2020-03-16
        • 2017-10-16
        • 2018-05-22
        • 2012-11-11
        • 2015-06-18
        • 2021-01-03
        • 1970-01-01
        相关资源
        最近更新 更多