webpack - 无法创建中继容器; graphql.js 文件似乎有 webpack 工件?

标签 webpack electron graphql relay

我在 Electron 容器中使用 Relay 和 CRA,并且遇到了一个非常奇怪的错误,我似乎无法诊断:导入的 GraphQL 片段似乎包含 Webpack 工件?

Could not create Relay Container for `UsersGrid`. Expected a set of GraphQL fragments, got `function () {
  const node = __webpack_require__(/*! ./__generated__/UsersGrid_viewer.graphql */ "./src/components/users-grid/__generated__/UsersGrid_viewer.graphql.js");

Webpack 是否以某种方式编译 .graphql.js 文件?或者还有什么我应该看的吗?

这是中继容器:

import { createFragmentContainer, graphql } from 'react-relay';
import UsersGrid from './UsersGrid';

export default createFragmentContainer(
  UsersGrid,
  graphql`
    fragment UsersGrid_viewer on Query {
      user(login: "jvcjunior") {
        followers(first: 10) {
          edges {
            node {
              name
              avatarUrl
            }
          }
        }
      }
    }
  `
);

它被内联编译为:

/***/ "./src/components/users-grid/UsersGrid.relay.js":
/*!******************************************************!*\
  !*** ./src/components/users-grid/UsersGrid.relay.js ***!
  \******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react_relay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-relay */ "./node_modules/react-relay/index.js");
/* harmony import */ var react_relay__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_relay__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _UsersGrid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UsersGrid */ "./src/components/users-grid/UsersGrid.js");


/* harmony default export */ __webpack_exports__["default"] = (Object(react_relay__WEBPACK_IMPORTED_MODULE_0__["createFragmentContainer"])(_UsersGrid__WEBPACK_IMPORTED_MODULE_1__["default"], function () {
  const node = __webpack_require__(/*! ./__generated__/UsersGrid_viewer.graphql */ "./src/components/users-grid/__generated__/UsersGrid_viewer.graphql.js");

  if (node.hash && node.hash !== "d730274a63d8021d6427a27e7c3e2c27") {
    console.error("The definition of 'UsersGrid_viewer' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data.");
  }

  return __webpack_require__(/*! ./__generated__/UsersGrid_viewer.graphql */ "./src/components/users-grid/__generated__/UsersGrid_viewer.graphql.js");
}));

/***/ }),

最佳答案

尝试使用

createFragmentContainer(Component, {
  viewer: graphql`
    fragment UsersGrid_viewer on Query { ... }
  `
})

相反

createFragmentContainer(Component,
  graphql`
    fragment UsersGrid_viewer on Query { ... }
  `
)

关于webpack - 无法创建中继容器; graphql.js 文件似乎有 webpack 工件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55961762/

相关文章:

database - Electron .Net核心。无法更新数据库。如何在Electron中配置sqlite或sql compact

electron - 使用 IndexedDB 打开两个 Web 应用程序 (Electron) 实例

javascript - 当我使用 Apollo 时,对象数组转换为对象的对象

webpack - Webpack 2.2.1 中的 BannerPlugin 错误

electron - 是否可以在Electron中调用 native 进程?

graphql - GraphQL 中具有一对多关系的多态性

graphql - 无法将大型 graphql 架构上传到 aws appsync

webpack - 替代 Webpack@5 中的 `MainTemplate.hooks.beforeStartup`

javascript - webpack 4 和 d3 es6 导入不起作用

javascript - 如何在不包含 React 的情况下发布 React 组件