У меня есть два проекта с файлом .proto, и один импортирует другой. Оба проекта поддерживаются и составляются отдельно. Настройка выглядит следующим образом:
domain project:
|-- company
`-- domain
`-- domain.proto
service project:
|-- company
`-- service
`-- service.proto
// domain.proto
syntax = "proto3";
message User {
string name = 1;
}
// service.proto
syntax = "proto3";
import company/domain/domain.proto
message Ping {
domain.User user = 1;
}
Я могу скомпилировать company/service/service.proto
, используя protoc /company/service/service.proto
, но полученный файл. js пытается импортировать из папки в той же папке (npm) проект:
var company_domain_domain_pb = require('../../company/domain/domain_pb.js');
Но domain
устанавливается как отдельный npm пакет. Почему-то мне кажется, что мне нужно скомпилировать оба .proto
файла одновременно, чтобы grp c -web правильно установил путь. Это отличается от компилятора Python grp c, который генерирует отдельные библиотеки, которые я могу pip install
отдельно. Я просто должен убедиться, что импортировал обе библиотеки в случае Python. Я ожидал что-то похожее с компилятором JavaScript. Каков наилучший способ добиться этого?