Импортировать и вызвать функцию с помощью es6

Ранее:

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

С es6, как я могу импортировать и вызывать сразу, как в первой строке?

import debug from 'debug'();

- нет, нет?

Ответы

Ответ 1

Вам понадобятся две строки:

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

Синтаксис импорта - это декларативный синтаксис импорта, он не выполняет никаких функций.

Ответ 2

- нет, нет?

Правильно. Имейте в виду, что оператор import аналогичен более простому выражению require() - он также создает привязку "загруженного" модуля к локальной переменной.

То есть

import debug from 'debug'();

... ближе в поведении/семантике к

var debug = require('debug');

... чем просто

require('debug');

Аналогии с загрузчиками модулей в стиле commonjs, очевидно, сломаются в какой-то момент, но в конце дня это "нет" из-за простого и простого факта, что import debug from 'debug' фактически не разрешает ничего, что вы можете ссылаться (или ссылаться иначе).

Ответ 3

import http from "debug"; // not sure if this is the desired effect