ES6进口申报+符号

时间:2017-06-26 00:02:36

标签: javascript node.js ecmascript-6

此导入声明中 + 符号表示什么?

import app from '+/api';

而不仅仅是:

import app from '/api';

导入片段来自使用es6的Node应用程序,该应用程序使用Babel进行转换。

./ api / index.js使用export default app;

导出Express实例

我也看过这种语法,使用代字号:

import app from '~/api';

1 个答案:

答案 0 :(得分:5)

模块标识符的结构或它应该如何被解释为not part of the ECMAScript specification

模块标识符的含义由模块加载器定义,即实际获取值并使用它来查找相应模块的系统部分。

当然Node.js有一个模块加载器。 Node.js是defines that module identifiers are either names of shared modules or paths to files

但是,这里的+(或~)在Node.js中没有任何意义。我只能假设项目可能正在使用模块捆绑器或类似的处理模块文件及其依赖项的东西。正是系统的一部分定义了+的含义。

我认为这是许多人不理解的一点:虽然ES6定义了声明依赖关系的标准语法,但解析模块标识符实际模块不是规范的一部分,在运行时/环境之间可能有很大差异。鉴于Node.js的受欢迎程度,大多数可能与CommonJS module system(这是Node使用的)兼容,但同样,没有标准。