MongoDB Stitch + Gatsby Buid: WebpackError: ReferenceError: self не определено с - PullRequest
0 голосов
/ 21 марта 2020

Мое приложение реакции разработано с Гэтсби. Сбой процесса сборки на зависимости "whatwg-fetch"

Моя структура приложения основана на следующем проекте. https://github.com/mongodb-university/stitch-tutorial-todo-web

Я нашел несколько подсказок в Интернете, где они проверяют окно, но я не могу заставить его работать с моей структурой. пример: https://www.gitmemory.com/issue/gatsbyjs/gatsby/8612/527732596

Журнал ошибок:

  1 | var support = {
> 2 |   searchParams: 'URLSearchParams' in self,
    | ^
  3 |   iterable: 'Symbol' in self && 'iterator' in Symbol,
  4 |   blob:
  5 |     'FileReader' in self &&



WebpackError: ReferenceError: self is not defined

- fetch.js:2 Module../node_modules/whatwg-fetch/fetch.js
  node_modules/whatwg-fetch/fetch.js:2:1

- BrowserFetchTransport.js:1 Module../node_modules/mongodb-stitch-browser-core/dist/esm/core/internal/net/BrowserFetchTransport.js
  node_modules/mongodb-stitch-browser-core/dist/esm/core/internal/net/BrowserFetchTransport.js:1:1

- index.js:1 Module../node_modules/mongodb-stitch-browser-core/dist/esm/index.js
  node_modules/mongodb-stitch-browser-core/dist/esm/index.js:1:1

- index.js:1 Module../node_modules/mongodb-stitch-browser-sdk/dist/esm/index.js
  node_modules/mongodb-stitch-browser-sdk/dist/esm/index.js:1:1`

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Проблема с пакетом whatwg-fetch, который предназначен для использования на стороне браузера. Когда Gatsby создает ваше приложение, код выполняется в Node.js, поэтому упомянутый пакет не запускается.

MongoDB распространяет два пакета для Stitch JS SDK - один для браузера и один для сервера. В идеале вы должны использовать оба из них, каждый в той среде, в которой они желают.

https://www.npmjs.com/package/mongodb-stitch-server-sdk

0 голосов
/ 02 мая 2020

Я пытался подключиться к Stitch, используя mongodb-stitch-browser-sdk в приложении gatsby, и создание страниц c html не удалось. Я решил эту проблему с помощьюact-loadable (Импортировать компонент, где Stitch вызывается с использованиемact-loadable) Post. js file

...
    const LoadableComponent = Loadable({
      loader: () => import('../components/Comments'),
      loading() {
       return <div>Loading...</div>
      }
    });
...

Comments. js компонент импортирует Stitch и подключается к базе данных .

...