protocolbuffers / protocolbuffers/protobuf-javascript

Js TypeError when generated with commonjs_strict

Offen
#40 3 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug good first issue javascript triaged
Vorherrschende Sprache
JavaScript
Sterne
471
Forks
91
Ø Merge
3 Std. 57 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Version: v3.10.0
Language: Javascript
OS: OSX 10.14.6
Node v12.10.0

When js files generated with commonjs_strict the referrences to types defined in other files are not using the package name to access it from the exported object, so TypeError is thrown due to reading property of undefined.

How to reproduce

a.proto

syntax = "proto3";

package foo.v1;
import "b.proto";

message A {
  repeated foo.v1.B foo = 1;
}

b.proto

syntax = "proto3";

package foo.v1;
import "b.proto";

message A {
  repeated foo.v1.B foo = 1;
}
protoc \
  --js_out=import_style=commonjs_strict:./generated \
  a.proto b.proto

In the generated js files the protos_b_pb.B should be protos_b_foo.v1.pb.B

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das Problem mit den bereitgestellten Dateien a.proto und b.proto sowie dem protoc-Befehl unter Verwendung von commonjs_strict zu reproduzieren. Untersuche anschließend die generierten JavaScript-Referenzen zwischen den Dateien. Verfolge, wie paketqualifizierte Exporte gebildet werden, und überprüfe, dass die generierte Referenz den exportierten Paketpfad verwendet und keinen TypeError mehr auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, node.js
Bereich
build-system, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.