Javascript 使用es6导入并调用函数

Javascript 使用es6导入并调用函数,javascript,ecmascript-6,babeljs,Javascript,Ecmascript 6,Babeljs,以前: var debug = require('debug')('http') , http = require('http') , name = 'My App'; 对于es6,我如何像第一行一样立即导入和调用 import debug from 'debug'(); 是“否”?您需要两行: import http from "debug"; // not sure if this is the desired effect import debugModule from 'd

以前:

var debug = require('debug')('http')
  , http = require('http')
  , name = 'My App';
对于es6,我如何像第一行一样立即导入和调用

import debug from 'debug'();
是“否”?

您需要两行:

import http from "debug"; // not sure if this is the desired effect
import debugModule from 'debug';
const debug = debugModule('http');
导入语法是一种声明性导入语法,它不执行任何函数

是一个否定吗

import http from "debug"; // not sure if this is the desired effect
对。请记住,
import
语句不仅仅类似于一个简单的
require()
语句——它还创建了“已加载”模块到局部变量的绑定

就是

import debug from 'debug'();
…在行为/语义上更接近

var debug = require('debug');
…而不是简单地

require('debug');

与commonjs风格的模块加载器的类比在某一点上显然会出现问题,但归根结底,这是一个“不可能”的问题,因为一个简单的事实是,
从“debug”导入debug
实际上并不能解决您可以调用(或以其他方式引用)的任何问题,这没有预期的效果。问题是,有时需要在任何其他导入语句之前调用该函数<在声明所有
import
语句之前,code>import不允许执行其他语句。