GOLANG_LIB Telegram 476
🔧 Локальное исправление зависимостей в Go

Иногда при разработке на Go возникает необходимость временно изменить внешний модуль — например, внести исправление, которое ещё не вмержили в основной репозиторий. Go предоставляет удобный механизм для этого.

🧩 Используем replace в go.mod

В Go можно использовать директиву replace, чтобы указать локальный путь вместо внешней зависимости:


replace github.com/some/module => ../local-copy/module


Теперь при сборке Go будет использовать код из ../local-copy/module вместо кода, загружаемого из Git.

Это особенно удобно, если вы:

* работаете над фиксом бага во внешнем пакете;
* тестируете pull request;
* занимаетесь временным форком библиотеки.

⚠️ Что важно помнить

1. Не коммитьте replace в main ветку!
Эти изменения локальны и не должны попадать в боевой код.

2. go get не влияет на replace
Даже если вы обновите модуль через go get, replace всё равно будет использовать локальный путь.

3. Проверьте go.sum
После замены зависимостей могут измениться хэши в go.sum. Это нормально, но стоит за этим следить.

🛠 Пример сценария

Вы нашли баг в github.com/example/lib, клонировали его:


git clone https://github.com/example/lib ~/dev/lib-patched


Затем в go.mod вашего проекта:


replace github.com/example/lib => ~/dev/lib-patched


Теперь go build будет использовать вашу локальную версию.

https://eli.thegreenplace.net/2024/locally-patching-dependencies-in-go/

👉 @golang_lib
👍3



tgoop.com/golang_lib/476
Create:
Last Update:

🔧 Локальное исправление зависимостей в Go

Иногда при разработке на Go возникает необходимость временно изменить внешний модуль — например, внести исправление, которое ещё не вмержили в основной репозиторий. Go предоставляет удобный механизм для этого.

🧩 Используем replace в go.mod

В Go можно использовать директиву replace, чтобы указать локальный путь вместо внешней зависимости:


replace github.com/some/module => ../local-copy/module


Теперь при сборке Go будет использовать код из ../local-copy/module вместо кода, загружаемого из Git.

Это особенно удобно, если вы:

* работаете над фиксом бага во внешнем пакете;
* тестируете pull request;
* занимаетесь временным форком библиотеки.

⚠️ Что важно помнить

1. Не коммитьте replace в main ветку!
Эти изменения локальны и не должны попадать в боевой код.

2. go get не влияет на replace
Даже если вы обновите модуль через go get, replace всё равно будет использовать локальный путь.

3. Проверьте go.sum
После замены зависимостей могут измениться хэши в go.sum. Это нормально, но стоит за этим следить.

🛠 Пример сценария

Вы нашли баг в github.com/example/lib, клонировали его:


git clone https://github.com/example/lib ~/dev/lib-patched


Затем в go.mod вашего проекта:


replace github.com/example/lib => ~/dev/lib-patched


Теперь go build будет использовать вашу локальную версию.

https://eli.thegreenplace.net/2024/locally-patching-dependencies-in-go/

👉 @golang_lib

BY Библиотека Go (Golang) разработчика


Share with your friend now:
tgoop.com/golang_lib/476

View MORE
Open in Telegram


Telegram News

Date: |

In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. The visual aspect of channels is very critical. In fact, design is the first thing that a potential subscriber pays attention to, even though unconsciously. Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” Just at this time, Bitcoin and the broader crypto market have dropped to new 2022 lows. The Bitcoin price has tanked 10 percent dropping to $20,000. On the other hand, the altcoin space is witnessing even more brutal correction. Bitcoin has dropped nearly 60 percent year-to-date and more than 70 percent since its all-time high in November 2021. How to Create a Private or Public Channel on Telegram?
from us


Telegram Библиотека Go (Golang) разработчика
FROM American