noeud require () versus es6 import: pourquoi cet exemple ne fonctionne-t-il pas?

ES6 ne remplace-t-il pas le noeud require ()? J’ai le code suivant:

var sprintf = require("sprintf-js").sprintf;

Cela fonctionne comme annoncé. Je peux juste utiliser sprintf (). J’aimerais accomplir la même chose en utilisant les instructions d’importation ES6:

import sprintf from 'sprintf-js';

Cela ne fonctionne pas. Pourquoi pas? Comment puis-je le réparer? Points bonus si vous pouvez expliquer le fonctionnement des exportations dans sprintf-js.

Vous pouvez accéder aux exportations de modules de plusieurs manières. Voir l’article de MDN.

 import defaultMember from "module-name"; import * as name from "module-name"; import { member } from "module-name"; import { member as alias } from "module-name"; import { member1 , member2 } from "module-name"; import { member1 , member2 as alias2 , [...] } from "module-name"; import defaultMember, { member [ , [...] ] } from "module-name"; import defaultMember, * as name from "module-name"; import "module-name"; 

Dans ce cas, votre syntaxe fonctionnerait si vous aviez affecté l’exportation default à sprintf ; si vous aviez assigné sprintf à l’object default .

En supposant que ce ne soit pas le cas, une syntaxe correcte incorporerait des références à la méthode exscope entre accolades.

 import { sprintf } from 'sprintf-js';