javascript - ES6导入声明+符号

标签 javascript node.js ecmascript-6

此进口申报中的+符号表示什么?

从'+/api'导入应用;

而不只是:

从'/api'导入应用;

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

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

导出一个 Express 实例

我也看到过这种语法,使用波浪号:

从'~/api'导入应用程序;

最佳答案

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

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

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

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


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

关于javascript - ES6导入声明+符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44751667/

相关文章:

javascript - 用临时gif图像预加载背景图像

javascript - 只选择两个复选框

javascript - 如何动态更新数据表中的单元格?

node.js - NPM 无法识别任何命令

java - android listview 的详细 View

http - 多久打开一次sqlite数据库

javascript - 为什么 ref 不是子组件中的属性?

javascript - Sinon .callsFake() 没有模拟函数的返回

javascript - 使用 React.js 实现 SlideToggle 功能

javascript - 购物车中的产品重复