Учитывая сценарий каталога, который вы упомянули в своем OP, вы можете добавить свою библиотеку через локальный путь, как указано в документации NPM: Локальные пути :
- Root
|
-- Project One
|
-- Project Two
|
-- Library usued across both projects
Например, в package.json
из Project One вы можете добавить библиотеку в качестве зависимости:
"dependencies" : {
"my-shared-library" : "file:../Library usued across both projects",
}
P.S. Я не уверен, разрешены ли пробелы в имени папки библиотеки, но вы можете попробовать это выяснить. Но я предполагаю, что вы все равно не будете использовать пробелы.
Альтернативное решение и дальнейшие планы
2) Создайте библиотеку и загрузите ее в npm и используйте в качестве зависимости
Я не могу принять этот подход, так как код является частным и не может быть передан за пределы сети. Также нет локального корпоративного реестра npm для использования корпоративного npm.
Это не совсем точно. Вы действительно можете принять этот подход в качестве альтернативного решения или если вы думаете, что вы могли бы использовать эту библиотеку в будущем в другом проекте. Есть один способ сделать это, как упомянуто в документации NPM: Git URLs как Зависимости .
package.json
"dependencies" : {
"my-shared-library" : "Git repo address here. There are various ways to specify an address. See below.",
}
Как добавить библиотеку в качестве зависимости
- Предположим, вы создали новый репозиторий для этой библиотеки:
"dependencies" : {
"my-shared-library" : "git+ssh://git@my-companys-treasure.com/my-shared-library.git",
}
Таким образом, вы даже можете использовать разные версии вашей библиотеки. Скажем, вы разрабатываете новую версию (то есть 4.2.0
) вашей библиотеки для Project One
и не готовы или не должны использоваться Project Two
, в package.json
из Project One
вы можете добавить ее следующим образом:
"dependencies" : {
"my-shared-library" : "git+ssh://git@my-companys-treasure.com/my-shared-library.git#branch-v4.2.0",
}
- В качестве альтернативы вы можете создать новую ветвь, скажем
branch-for-my-shared-library
, в текущем хранилище (при условии, что оба Project One и Project Two помещены в этот же репозиторий):
"dependencies" : {
"my-shared-library" : "git+ssh://git@my-companys-treasure.com/my-current-project.git#branch-for-my-shared-library",
}
Также обратите внимание, что есть несколько протоколов, которые вы можете указать в URL, как указано в документе:
Протокол является одним из следующих: git, git + ssh, git + http, git + https или git + file.
Дополнительные примечания:
Удачного кодирования.