J'ai ce qui semble être un conflit dans Dans un paquet, je fais ce qui suit: p> Babel / registre code> entre deux packages NPM locaux.
import fs from 'fs';
^^^^^^
SyntaxError: Unexpected reserved word
3 Réponses :
Comme vous l'avez vu, Le problème que vous êtes confronté est que, par défaut, Une option est de passer La meilleure solution serait de transpercer votre module code> à l'avance à l'avance. Si cela ne fonctionne pas cependant, vous pouvez utiliser l'option babel / registre code> est uniquement destiné à être exécuté une fois par application, ce qui serait généralement l'application de niveau supérieur que vous démarrez. P>
exiger ('babel / registre') code> définira uniquement votre système pour transpercer les fichiers directement dans le module, il ne traitera pas
nœud_modules code>. L'attente en général que tout dans
nœud_modules code> aura été compilé à l'avance lors de la publication de votre registre de module. p>
Ignorer: false code> en option, par exemple.
Exiger ('Babel / Registre') ({Ignore: False}); Code> Cependant, il s'agit généralement d'une mauvaise idée et peut conduire à d'autres problèmes. Cela rendra les fichiers de Babel Transpile tous les fichiers em>, mais ce n'est pas toujours une solution sûre à faire car tout le code JavaScript n'est pas garanti d'être un module ES6 valide. P>
code> pour spécifier une regex ou globe pour les chemins qui doivent être transformés. P>
L'erreur: Cependant, dans mon cas, cette erreur n'était étrangement pas montrant jusqu'à ce que em> j'ai eu une autre erreur. Je veux dire, tout fonctionnait, alors j'ai eu une erreur code> EADDDRINUSE code>. Quand c'est arrivé, il a été ombré et l'erreur de polyfill s'est présentée. Très étrange. Je n'ai pas touché mon code dans n'importe où lié à Babel. P>
Une fois que j'ai corrigé le polyfill, le Une seule instance de babel / polyfill est autorisée code> est exactement ce que @Loganfsmyth mentionné: plusieurs polyfills, qui peuvent être causés à l'aide des deux
Babel-noeud code> et nécessitant
./ registre-babel code>, en même temps. p>
Eaddrinuse code> est arrivé et j'ai pu tout résoudre. P>
Dans mon cas, je suis parti avec le réglage:
self._babelPolyfill = false;
Généralement, l'attente est que les bibliothèques seront pré-compilées avant la distribution.
Babel / Registre Code> Ne traite pas les fichiers intérieurs
Node_Modules CODE> Par défaut.
Cela fait si vous suivez le modèle que je suive. Si j'excluais complètement le deuxième package, tous les modules du premier package sont enregistrés et transformés.
Je suis confus. Votre question dit si vous prenez
babel / registre code> hors du module code> Test code>, il donne une erreur sur l'importation. C'est parce que
test code> est dans
node_modules code> afin qu'il ne soit pas compilé. Vous attendez-vous à l'extérieur
Babel / registre code> pour compiler
test code>?
Oui, "Test" Vit dans
Node_Modules CODE>, mais pourquoi ne devrait-il pas
babel / registre code> transformer-le? Ne devrait pas
babel / registre code> simplement compiler tout module ES6 que vous essayez de charger?
C'est ce que j'ai dit dans mon premier commentaire.
Babel / Regiche Code> Par défaut ne traite que les choses directement à l'intérieur de votre module, pas à l'intérieur
nœud_modules code>, à moins que vous ne le dis explicitement quoi traiter. Le chargement serait bien plus lent s'il vient d'essayer de transpercer chaque fichier que vous référence. Plus tous les fichiers ne sont pas valides Modules ES6. Voir la note: .
Ah, je vois maintenant, merci. Avez-vous une suggestion sur la manière dont je devrais aller sur l'importation du deuxième paquet?
Comment
test code> distribué? Généralement, l'attente est que les modules seront distribués comme précompilé ES5. Si vous voulez vraiment compiler après cela, vous pouvez modifier le
Ignorer code> et / ou
uniquement code> Regex comme link i Link i Spectacles.
Vous devriez en faire cela dans une réponse afin que je puisse l'accepter.
rencontré le même problème, avez-vous résolu cela?