babelRelayPlugin,transform-runtime,passPerPreset有什么作用? (babel + webpack配置)

时间:2017-03-16 11:46:08

标签: webpack babeljs relayjs

我是Relay的新手,我正在查看它的'babel + webpack配置,不知何故我需要帮助才能理解它'.babelrc - 这是代码:

{
  "passPerPreset": true,
  "plugins": [
    "transform-runtime"
  ],
  "presets": [
    {
      "plugins": [
        "./build/babelRelayPlugin"
      ]
    },
    "react",
    "es2015",
    "stage-0"
  ]
}

这是关于babelRelayplugin.js的代码,这很简短,但我需要帮助理解这一点:

const getBabelRelayPlugin = require('babel-relay-plugin');
const schema = require('../data/schema.json');

module.exports = getBabelRelayPlugin(schema.data);

我在预设中理解“react”,“es2015”,“stage-0”,babel将代码转换为浏览器理解的js。我已经完成了搜索,这是我所拥有的信息,我不明白并且有困惑:

  • babelRelayPlugin - Relay使用babel插件从Relay.QL转换 字符串模板到JavaScript代码,用于描述每个查询和 包括来自GraphQL架构的数据。
  • passPerPreset:true - 将修改babel遍历的方式 插件。而不是单个遍历所有插件/预设 合并在一起,每个预设将得到自己的遍历。(这是什么意思?)
  • “plugins”:[“transform-runtime”] - 所有助手都会引用 模块babel-runtime避免重复编译 输出。运行时将编译到您的构建

如果有人帮我理解这些是什么以及他们做了什么,真的很感激。

1 个答案:

答案 0 :(得分:-1)

我建议您阅读Relay存储库的this issue及其中包含的链接。