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

ES2015 `import` alternative for `require()()`?

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

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

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

我的问题:是否有使用 ES2015 import 语句的类似构造?

如果您要从 commonjs 语法转换为 es2015 语法,您将如何翻译此类代码?

There is no such shorthand in ES2015.

您只需要将代码分成两部分:

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

导出将是:

export default function { ... }

该模式之所以有效,是因为 require(debug) returns 一个可以立即使用的值。

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');