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?
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.
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).