В каталоге rules_ nodejs examples есть несколько примеров структур репо. Это показывает (в данном случае приложение Angular), у которого есть общие библиотеки и которые они используют, но принцип здесь тот же.
Как правило, у вас будет только один файл WORKSPACE в root вашего проект. Хотя возможно иметь несколько package.json
файлов для разных приложений и библиотек, это добавляет некоторую дополнительную сложность правилам ts_library
, которые для начала лучше всего избегать. В этом примере репо показывает несколько package.json
файлов, но без Typescript.
Для BUILD
(или BUILD.bazel
) файлов минимальный необходимый вам здесь - один в foo
и один в bar
(и один в root). Чем больше файлов BUILD у вас есть, тем больше вы разделяете единицы компиляции для своего источника, увеличивая при этом инкрементность.
Затем добавьте ts_library
правила к этим BUILD
файлам, документы для которых можно найти здесь , они также показывают разницу между использованием tsc
напрямую и ts_library
. Затем вы можете определить исходные зависимости между foo
и bar
, быстрый пример, показанный ниже:
packages/foo/BUILD
:
ts_libaray(
name = "foo",
srcs = glob(["src/**/*.ts"]),
deps = [
"//packages/bar", <-- this is the source dep for bar
"@npm//some-package",
],
)
packages/bar/BUILD
:
ts_libaray(
name = "bar",
srcs = glob(["src/**/*.ts"]),
deps = [
"@npm//some-other-package",
],
)