Как использовать Bazel с Node.js - PullRequest
0 голосов
/ 31 августа 2018

Насколько я понимаю, Bazel ожидает, что проекты будут находиться в моно-хранилище с файлом WORKSPACE на верхнем уровне и файлами BUILD в каждом проекте:

Repo
├── ProjectA
│   └── BUILD
├── ProjectB
│   └── BUILD
└── WORKSPACE

Однако, просматривая документацию по правилам Bazel NodeJS , кажется, что каждый проект должен иметь свой собственный файл WORKSPACE, в котором он определяет свои зависимости. то есть ...

Repo
├── ProjectA
│   ├── BUILD
│   └── WORKSPACE
└── ProjectB
    ├── BUILD
    └── WORKSPACE

Это похоже на мульти-репо, где каждый проект ссылается на другие проекты как внешняя зависимость , что мне казалось нормальным, пока я не понял, что для внешних зависимостей Bazel требует всех транзитивных зависимостей указывается в файле WORKSPACE для каждого пакета , что, безусловно, не идеально.

Какой самый простой способ использовать Bazel с проектами NodeJS, когда некоторые проекты могут быть написаны на других языках? Кроме того, есть ли где-нибудь пример использования Bazel в режиме мульти-репо?

Спасибо!

1 Ответ

0 голосов
/ 22 сентября 2018

Я думаю, что на самом деле 2 возможных варианта

Repo ├── MyProject │ └── BUILD ├── third_party │ └── ProjectB │ └─ BUILD └── WORKSPACE

или

Repo ├── MyProject │ └── BUILD └── WORKSPACE где во втором случае WORKSPACE ссылается на ProjectB с правилом npm_install, как определено в https://github.com/bazelbuild/rules_nodejs#using-bazel-managed-dependencies

...