导入具有属性的 ES6 模块

Import ES6 modules with properties

我在带有 NodeJS 的服务器上使用 ES6。我使用 babel 来转换它并且一切正常,但我有一个问题,我不知道如何进行。我需要能够在代码 ES6 中编写这段代码 ES5,我希望有人能解释如何做以及为什么它不能像我所做的那样工作。

特别是,我需要在 ES5 中编写此代码,运行 在 ES6 中:

const mailgun = require('mailgun-js')({
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
})

目前,我正在尝试使用以下代码,但它不起作用:

import mailgun from 'mailgun-js'
mailgun = {
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
}

配置参数有一个可以正常工作的 config.js 文件。 转译代码时,控制台 returns 在日志中显示以下错误消息:

Log Message

我需要知道使用该语法的错误是什么,以及执行此操作的正确方法是什么。谢谢。

之前的代码是这样做的:

  1. 需要mailgun-js
  2. 将结果作为函数调用,传入一些配置
  3. 将其结果作为 mailgun

在 ES6 中做同样的事情,如果我们假设函数是默认导出,首先我们导入函数,然后我们调用它:

import mailgunFactory from 'mailgun-js';
const mailgun = mailgunFactory({
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
});

你可以把你的 ES5 改成这样:

const mailgun = require('mailgun-js');
const your_var = mailgun({
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
});

在 ES6 中,这将是:

import mailgun from 'mailgun-js';
const your_var = mailgun({
  apiKey: config.mail.api.api_key,
  domain: config.mail.api.domain
});