web-dev-qa-db-fra.com

importer et appeler une fonction avec es6

Précédemment:

var debug = require('debug')('http')
  , http = require('http')
  , name = 'My App';

Avec es6, comment puis-je importer et invoquer tout de suite comme la première ligne?

import debug from 'debug'();

est un non non?

23

Vous aurez besoin de deux lignes:

import debugModule from 'debug';
const debug = debugModule('http');

La syntaxe d'importation est une syntaxe d'importation déclarative, elle n'exécute aucune fonction.

36
loganfsmyth

est un non non?

Correct. Gardez à l'esprit que l'instruction import est analogue à plus qu'une simple instruction require() - elle crée également une liaison du module "chargé" à une variable locale.

C'est,

import debug from 'debug'();

... est plus proche en comportement/sémantique de

var debug = require('debug');

... que de simplement

require('debug');

Les analogies avec les chargeurs de modules de style commonjs vont évidemment tomber en panne à un moment donné, mais à la fin de la journée, c'est un "non non" en raison du fait clair et simple que import debug from 'debug' ne se résout pas réellement à tout ce que vous pouvez invoquer (ou autrement référencer).

3
jmar777