Public import is not included in generated CommonJS file
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- javascript
- 領域
- tooling
調査の方向性
提供された protoc コマンドでケースを再現し、その後 build/project_pb.js と、id_pb および task_pb に対して生成された import を調べます。test.js を使って動作を確認します。project_pb.js で推移的な public import が利用可能になり、project.proto で明示的な import を要求せずにスクリプトが「Everything is fine」と出力すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
System
Version: v3.6.1
Language: Javascript
macOS 10.14
Steps to reproduce
- Create a
srcdirectory with 3 files:// id.proto syntax = "proto3"; message Id { string value = 1; }// task.proto adding a transitive import for `Id` syntax = "proto3"; import public "id.proto"; message Task { Id id = 1; }// project.proto importing both `Id` and `Task` from Project syntax = "proto3"; import "task.proto"; message Project { Id id = 1; repeated Task task = 2; } - Compile to js using
mkdir build protoc --proto_path=src --js_out=import_style=commonjs,binary:build id.proto task.proto project.proto npm install google-protobufunder the root directory.node test.js// test.js var id_pb = require('./build/id_pb'); var project_pb = require('./build/project_pb'); var id = new id_pb.Id(); id.setValue("Everything is fine"); var project = new project_pb.Project() project.setId(id); process.stdout.write(project.getId().getValue()); process.stdout.write("\n");
Expected behaviour
Everything is fine is printed to the console.
Actual behaviour
.../test-proto/build/project_pb.js:173
jspb.Message.getWrapperField(this, id_pb.Id, 1));
^
ReferenceError: id_pb is not defined
at proto.Project.getId (.../test-proto/build/project_pb.js:173:40)
at Object.<anonymous> (.../test-proto/test.js:10:30)
at Module._compile (internal/modules/cjs/loader.js:688:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
at Module.load (internal/modules/cjs/loader.js:598:32)
at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
at Function.Module._load (internal/modules/cjs/loader.js:529:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
at startup (internal/bootstrap/node.js:285:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)
id_pb import is missing from project_pb. Alternatively it may be referenced from task_pb, since it’s declared public in task.proto.
The error does not show up if id.proto is explicitly imported in project.proto.
- 主要言語
- JavaScript
- スター
- 471
- フォーク
- 91
- 平均マージ
- 3時間 57分
- マージ済み PR(30日)
- 2
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
protocolbuffers/protobuf-javascript のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
protocolbuffers/protobuf-javascript#248 · コメント 1 件 · リアクション 13 件 ·
-
question
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
protocolbuffers/protobuf-javascript#222 · コメント 9 件 ·
-
enhancement port-fix triaged
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
protocolbuffers/protobuf-javascript#185 · コメント 1 件 ·
-
enhancement port-fix triaged
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
protocolbuffers/protobuf-javascript#182 · コメント 3 件 · リアクション 1 件 ·
protocolbuffers/protobuf-javascript の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
antfu-collective/icones#398 ·
-
ECmail.com オープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
wesbos/burner-email-providers#554 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
radiantearth/stac-browser#1023 ·
-
HMR stops working オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
components-web-app/docs#92 ·