ES2015 `require()()` 的 `import` 替代方案?

Sti*_*itt 2 javascript commonjs ecmascript-6

一些 Node JS 库(例如debug)在 require 语句中使用这种模式:

var debug = require('debug')('http');
Run Code Online (Sandbox Code Playgroud)

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

我的问题:是否有使用 ES2015import语句的类似结构?

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

Dan*_*nce 5

该模式仅适用于require(debug)返回一个可以立即使用的值。

var debug = require('debug')('http');
Run Code Online (Sandbox Code Playgroud)

import有点像if它不能解析为值的意义上。

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

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

var d = a ? b : c;
var debug = require('debug');
Run Code Online (Sandbox Code Playgroud)

唯一的选择是拆分语句。

import _debug from 'debug';
var debug = _debug('http');
Run Code Online (Sandbox Code Playgroud)