我一直在寻找互联网,没有明确的答案.
目前使用的NodeJS只CommonJS的语法来加载模块,如果你真的想使用标准ES2015模块语法,你要么必须事先transpile,或在运行时使用外部模块加载.
目前我不太喜欢使用这两种方法,NodeJS维护者是否计划支持ES2015模块?我还没有找到关于此的暗示.
目前NodeJS 6.x声称支持96%的ES2015功能,但没有任何模块参考(NodeJS ES2105支持链接).
你知道NodeJS是否会在不久的将来支持这些模块?
之间有什么区别:
import utils from 'utils'
和
import * as utils from 'utils'?
如果是A:
//utils.js
export function doSomething()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
如果是B:
//utils.js
export function doSomething()
{
//...
}
export default function doSomethingDefault()
{
//...
}
Run Code Online (Sandbox Code Playgroud)
更新:
我被vscode的intellisense功能误导了,但是正如推荐的那样,对节点+ babel的一个小测试显示了不同之处:
//index.js
import utilsCaseA from './utils1'
import * as utilsCaseAWildcard from './utils1'
var utilsCaseARequire = require('./utils1')
import utilsCaseB from './utils2'
import * as utilsCaseBWildcard from './utils2'
var utilsCaseBRequire = require('./utils2')
var compareObjects =
{
utilsCaseA, utilsCaseAWildcard, utilsCaseARequire,utilsCaseB,utilsCaseBWildcard,utilsCaseBRequire
};
console.log(compareObjects);
Run Code Online (Sandbox Code Playgroud)