webpack - babelRelayPlugin、transform-runtime、passPerPreset 是做什么的? (babel+webpack配置)

标签 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 以避免编译过程中的重复 输出。运行时将被编译到您的构建中

如果有人帮助我理解这些是什么以及它们的作用,我将非常感激。

最佳答案

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

关于webpack - babelRelayPlugin、transform-runtime、passPerPreset 是做什么的? (babel+webpack配置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42833210/

相关文章:

relayjs - 如何在 Relay 中管理游标和排序?

css - 无法在 webpack 4 中加载 css 文件

Angular 字符串变量的 JavaScript 构造函数

webpack - 如何在编译包中包含 NPM 依赖项的源映射?

javascript - webpack 4 react jsx 无法渲染图像

javascript - Babel typescript 语句中出现意外标记 '?'

node.js - 巴别塔错误 : "Error: Cannot find module ' babel-plugin-transform-object-rest-spread' from '/vagrant' "

javascript - 为了使用 Gulp 在我的项目中使用 ES6 样式导入,我需要哪些工具?

facebook - 在 Relay 项目中分离 React 组件

javascript - 如何键入导出的 RelayContainer