Ответ 1
Вам понадобятся две строки:
import debugModule from 'debug';
const debug = debugModule('http');
Синтаксис импорта - это декларативный синтаксис импорта, он не выполняет никаких функций.
Ранее:
var debug = require('debug')('http')
, http = require('http')
, name = 'My App';
С es6, как я могу импортировать и вызывать сразу, как в первой строке?
import debug from 'debug'();
- нет, нет?
Вам понадобятся две строки:
import debugModule from 'debug';
const debug = debugModule('http');
Синтаксис импорта - это декларативный синтаксис импорта, он не выполняет никаких функций.
- нет, нет?
Правильно. Имейте в виду, что оператор import
аналогичен более простому выражению require()
- он также создает привязку "загруженного" модуля к локальной переменной.
То есть
import debug from 'debug'();
... ближе в поведении/семантике к
var debug = require('debug');
... чем просто
require('debug');
Аналогии с загрузчиками модулей в стиле commonjs, очевидно, сломаются в какой-то момент, но в конце дня это "нет" из-за простого и простого факта, что import debug from 'debug'
фактически не разрешает ничего, что вы можете ссылаться (или ссылаться иначе).
import http from "debug"; // not sure if this is the desired effect