ES2015`import`替代`require()()`?

时间:2016-03-24 09:52:14

标签: javascript ecmascript-6 commonjs

某些Node JS库(例如debug)将此模式与require语句一起使用:

$('#step-1, #step-2, #step-3').removeClass('active-step');

这基本上是一个函数的要求,然后直接调用。

我的问题:使用ES2015 var debug = require('debug')('http'); 语句是否有类似的构造?

如果从commonjs转换为es2015语法,你会如何翻译这些代码?

2 个答案:

答案 0 :(得分:2)

该模式仅起作用,因为require(debug)返回可立即使用的值。

var debug = require('debug')('http');

import有点像if,因为它没有作为一个值解析。

var d = if(a) { b } else { c }; // unexpected token
var debug = import debug from 'debug'; // unexpected token

require?运算符共享语义,该运算符执行与if相同的功能,但会将其解析为值。

var d = a ? b : c;
var debug = require('debug');

唯一的选择是将声明分开。

import _debug from 'debug';
var debug = _debug('http');

答案 1 :(得分:1)

There is no such shorthand in ES2015

您只需将代码分为两部分:

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

出口将是:

export default function { ... }