在同一存储库中的多个项目/文件夹/应用程序之间共享代码



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

如果项目在同一文件夹结构上运行,则只需移动共享父文件夹中的文件并从那里开始要求它。如果您有 DevOps 周期,则可以将该文件复制到生成步骤中的每个文件夹中。GitLab CI 使它变得非常简单,但它可以在 Git 中完成,而无需太多斗争。然而,如果代码库不是专有的,npm 包似乎是最长期稳定和最方便的解决方案。

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

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

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不起作用。

相关内容

  • 没有找到相关文章

最新更新