Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Generalize npm dependency support for generated js code

Ouverte
#47 5 commentaires 6 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
32/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
À l'abandon
Stack technique
cpp, javascript
Domaine
compilers

Piste de recherche

Commencez par comparer javascript/net/grpc/web/grpc_generator.cc, autour de la logique de chemin d’importation référencée, avec src/google/protobuf/compiler/js/js_generator.cc de protobuf. Déterminez le comportement de l’option d’importation et du chemin de package nécessaire pour généraliser l’exception actuelle de google-protobuf. Le travail est terminé lorsque les imports générés peuvent résoudre explicitement les dépendances à partir de packages npm spécifiés par l’utilisateur, tout en préservant les imports relatifs lorsqu’aucun override n’est fourni.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

javascript triaged

Sister issue of https://github.com/grpc/grpc-web/issues/584 (copying content)

All generated code currently generates js import paths with similar structure with that of the imported .proto files.
The one exception for protobuf well-known types - google-protobuf based ont he import prefix:
https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/compiler/js/js_generator.cc#L128

string GetRootPath(const std::string& from_filename,
                   const std::string& to_filename) {
  if (to_filename.find("google/protobuf") == 0) {
    // Well-known types (.proto files in the google/protobuf directory) are
    // assumed to come from the 'google-protobuf' npm package.  We may want to
    // generalize this exception later by letting others put generated code in
    // their own npm packages.
    return "google-protobuf/";
  }

Equivalent code in grpc-web:
https://github.com/grpc/grpc-web/blob/master/javascript/net/grpc/web/grpc_generator.cc#L461

This will generate something like

import * as google_api_annotations_pb from './google/api/annotations_pb';
import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb';

An import option would allow users to explicitly override the relative path and specify a npm package at .proto import could be the right approach to generalize this.

Langage dominant
JavaScript
Étoiles
471
Forks
91
Merge moyen
3 h 57 min
PR mergées (30 j)
2

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de protocolbuffers/protobuf-javascript

Toutes les issues de protocolbuffers/protobuf-javascript

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.