babel 中继插件 - es6 配置

babel relay plugin - es6 configuration

我正在做一个全是 es6 的测试应用程序......我在使用这个插件时碰到了一个问题......文档说使用它来配置插件并且它有效:

var getBabelRelayPlugin = require('babel-relay-plugin');
var schemaData = require('../data/schema.json').data;
module.exports = getBabelRelayPlugin(schemaData, {
  abortOnError: true
});

谁能告诉我为什么这个语法不起作用?

"use strict";

import getBabelRelayPlugin from 'babel-relay-plugin';
import schemaData from '../data/schema.json';

export default getBabelRelayPlugin(schemaData.data, {
  abortOnError: true
});

谢谢

在第一种情况下,要使用标准 CommonJS require 导入您的插件,您可以这样写:

var myBabelRelayPlugin = require('./myBabelRelayPlugin.js');

但是在 ES6 的情况下 如果你的模块是由 Babel 6 转译的,你必须在末尾添加 .default:

var myBabelRelayPlugin = require('./myBabelRelayPlugin.js').default;

很可能 Babel 在加载插件时没有尝试添加 .default,所以它无法正确加载你的插件的 ES6 版本。