Совместное использование кода между несколькими проектами / папками / приложениями в одном хранилище - PullRequest
0 голосов
/ 14 января 2019

У меня есть один репозиторий с несколькими проектами или приложениями в нескольких папках, каждая из которых имеет свой собственный файл package.json и node_modules. Все эти проекты имеют файл с одинаковым кодом, и он избыточен в каждом проекте. Я хочу достать его и сделать его доступным для жизни. Одним из способов является использование пакета npm. Думая о других способах здесь. Пожалуйста, дайте мне знать, если у вас есть идеи?

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вы можете создать внешний модуль для этого отдельного файла (в дальнейшем у вас будет больше файлов для обмена между вашими проектами)

  • Инициализировать новый проект для этого файла

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 не работает.

0 голосов
/ 14 января 2019

Если проекты выполняются в той же структуре папок, вы можете просто переместить файл в общую родительскую папку и потребовать его оттуда. Если у вас есть цикл DevOps, вы можете скопировать этот файл в каждую папку на этапе сборки. GitLab CI делает это довольно легко, но это можно сделать в Git без особой борьбы. Однако пакет npm кажется наиболее долговременным стабильным и удобным решением, если кодовая база не является проприетарной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...