ES6import报关+符号

这个import声明中的+符号代表什么?

import app from '+/api';

而不仅仅是:

import app from '/api';

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

./api/index.js使用export default app; Express实例export default app;

我也看到了这个语法,使用代字号:

import app from '~/api';

模块标识符的结构或者应该如何解释模块标识符 不是ECMAScript规范的一部分 。

模块标识符的含义由模块加载器定义,也就是系统中实际占用该值的部分,并用它来查找相应的模块。

当然Node.js有一个模块加载器。 Node.js 定义模块标识符是共享模块的名称或文件的path 。

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


我认为这是很多人不明白的一点:虽然ES6定义了用于声明依赖性的标准语法,但是模块标识符到实际模块的parsing不是规范的一部分,并且在运行时间/环境之间可能差别很大。 鉴于Node.js的受欢迎程度最可能与CommonJS模块系统 (这是Node所使用的)兼容,但是再次没有标准。