babelRelayPlugin、transform-runtime、passPerPreset 有啥作用? (babel+webpack 配置)

Posted

技术标签:

【中文标题】babelRelayPlugin、transform-runtime、passPerPreset 有啥作用? (babel+webpack 配置)【英文标题】:What does babelRelayPlugin, transform-runtime, passPerPreset do? (babel+webpack configuration)babelRelayPlugin、transform-runtime、passPerPreset 有什么作用? (babel+webpack 配置) 【发布时间】:2017-08-07 13:49:39 【问题描述】:

我是 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】:

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

【讨论】:

以上是关于babelRelayPlugin、transform-runtime、passPerPreset 有啥作用? (babel+webpack 配置)的主要内容,如果未能解决你的问题,请参考以下文章

2D转换下的zoom和transfor:scale的区别

index.js:找不到模块'.../@react-native-community/cli/node_modules/metro-react-native-babel-transformation/

index.js:找不到模块'.../@react-native-community/cli/node_modules/metro-react-native-babel-transformat

babel 中继插件 - es6 配置

UI框架总结

1.3.0 - - 见缝插针