【问题标题】:Load and use an ES6 module in one expression在一个表达式中加载和使用 ES6 模块
【发布时间】:2016-09-02 13:17:30
【问题描述】:

使用 node.js 模块语法,您可以加载一个模块并在一个表达式中使用它:

const numCPUs = require('os').cpus().length;

ES6 模块有什么等价物吗?

import os from 'os';
const numCPUs = os.cpus().length;

是我能得到的最接近的;这是两个完整的声明,给我留下了一个不需要的 os 绑定。

【问题讨论】:

标签: javascript node.js ecmascript-6 module


【解决方案1】:

没有。在解析文件时和执行之前,与模块的绑定是静态发生的。实现您想要做的唯一方法是使用named export

export const numCPUs = os.cpus().length;

这将允许您在程序的入口点中指定命名导出:

import { numCPUs } from 'os';

【讨论】:

  • 我们必须将export const numCPUs = os.cpus().length; 保存在另一个文件中,然后从中导入,对吗?
  • 是的。如果您需要将执行推迟到程序完成初始化之后,您可以让它返回一个承诺,或者导出提供该值的函数。
猜你喜欢
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多