Gatsby: Jendela tidak ditentukan

Dibuat pada 2 Jun 2016  ·  38Komentar  ·  Sumber: gatsbyjs/gatsby

Saya mencoba menggunakan impor semantik-ui bersama dengan komponen saya.

Bekerja dengan baik dalam pengembangan tetapi jika saya mencoba gatsby build , saya mendapatkan Error: ReferenceError: window is not defined .

Saya sedang melakukan ini:

import $ from 'jquery';
$.fn.transition = require('semantic-ui-transition');
$.fn.dropdown = require('semantic-ui-dropdown');

Apakah ada solusi?

Sunting: Berhasil membuatnya bekerja dengan:

try {
  $.fn.sidebar = require('semantic-ui-sidebar');
} catch (e) {
  console.log(e)
}

Komentar yang paling membantu

Itu berhasil! Terima kasih.

Tip: masukkan typeof window !== 'undefined' && window.whaterver-you-need untuk menyelesaikan ini.

Semua 38 komentar

Ya, selama pengembangan, komponen reaksi hanya dijalankan di browser tempat window didefinisikan. Saat membangun, Gatsby merender komponen ini di server di mana window tidak ditentukan. Umumnya dengan React solusi untuk ini hanya mengakses window di componentDidMount atau untuk memeriksa apakah window ada sebelum mengaksesnya. Untuk perpustakaan pihak ketiga yang tidak melakukan ini, apa yang telah Anda lakukan tampak hebat.

@KyleAMthews Sepertinya saya tidak bisa mendapatkan componentDidMount untuk diaktifkan html.js atau _template.jsx menggunakan gatsby develop , mungkin tidak seharusnya, atau saya lakukan sesuatu yang salah?

@hitchcott dapatkah Anda berbagi lebih banyak tentang bangunan Anda? Saya baru saja menginstal semantic-ui ke dalam proyek gatsby tetapi CSS saya tidak berfungsi. Tidak yakin bagaimana cara memuat CSS di halaman saya. React menganggap gaya in-line benar, tetapi bagaimana ia mengetahuinya? Juga saya kira saya harus mengonfigurasi webpack untuk melakukan build KURANG daripada menelan. Apakah Anda baru saja menginstal webpack-lessloader?

@Maxhodges — Webpack, bukan React, yang "tahu" tentang gaya Anda. Webpack tahu karena Anda mengimpor atau memerlukan file yang dikompilasi di suatu tempat di file JS yang dibundel.

Misalnya, saya mengimpor styles.css utama saya di file _template.js , jadi ketika Webpack membuat bundel, itu menyertakan gaya tersebut – sebaris saat dalam mode pengembangan; file referensi eksternal saat dalam produksi ( lihat cssLink sini untuk contoh ).

Tidak perlu loader KURANG tambahan, karena Gatsby sudah menyertakannya di konfigurasi Webpack default -nya.

bagi Anda yang mengikuti petunjuk di halaman Gatsby GitHub untuk menginstal situs dokumen ...
import { colors } from 'utils/colors'
adalah pembuat masalah dan setelah mengomentari ini dan ${colors.bg} situs berkembang dengan baik.

Apakah mungkin untuk menampilkan pesan kesalahan yang lebih baik ketika ini terjadi? Saya tidak tahu di mana menemukan kesalahan.

Failed at generating HTML

/home/projects/snipsonian/node_modules/gatsby/dist/bin/cli.js:42
      throw err;
      ^
Error: ReferenceError: window is not defined
    at Object.defineProperty.value (render-page.js:44529:79)
    at __webpack_require__ (render-page.js:30:30)
    at Object.exports.__esModule (render-page.js:42560:24)
    at __webpack_require__ (render-page.js:30:30)
    at Object.defineProperty.value (render-page.js:42533:51)
    at __webpack_require__ (render-page.js:30:30)
    at Object.<anonymous> (render-page.js:80:19)
    at __webpack_require__ (render-page.js:30:30)
    at Object.assign.i (render-page.js:50:18)
    at render-page.js:53:10
error Command failed with exit code 1.

Itu ide yang sangat bagus! Saat ini menekan keras pada 1.0 jadi tidak akan mendapatkan ini
segera tetapi untuk saat ini, buka saja public/render-page.js ke nomor baris
ditunjukkan di sana (44529) dan lihat kode apa yang menyebabkan masalah.

Pada hari Rabu, 17 Mei 2017 pukul 11:45 Thomas Seberechts [email protected]
menulis:

Apakah mungkin untuk menampilkan pesan kesalahan yang lebih baik ketika ini terjadi? Saya
tidak tahu di mana menemukan kesalahan.

Gagal menghasilkan HTML

/home/projects/snipsonian/node_modules/gatsby/dist/bin/cli.js:42
melempar kesalahan;
^
Kesalahan: ReferenceError: jendela tidak ditentukan
di Object.defineProperty.value (render-page.js:44529:79)
di __webpack_require__ (render-page.js:30:30)
di Object.exports.__esModule (render-page.js:42560:24)
di __webpack_require__ (render-page.js:30:30)
di Object.defineProperty.value (render-page.js:42533:51)
di __webpack_require__ (render-page.js:30:30)
di Obyek.(render-page.js:80:19)
di __webpack_require__ (render-page.js:30:30)
di Object.assign.i (render-page.js:50:18)
di render-page.js:53:10
kesalahan Perintah gagal dengan kode keluar 1.


Anda menerima ini karena Anda disebutkan.

Balas email ini secara langsung, lihat di GitHub
https://github.com/gatsbyjs/gatsby/issues/309#issuecomment-302041105 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAEVh6E9bZyyi0iX-Q7Q92VTvEb1DZbmks5r6sHGgaJpZM4Isiea
.

Itu berhasil! Terima kasih.

Tip: masukkan typeof window !== 'undefined' && window.whaterver-you-need untuk menyelesaikan ini.

kesalahan hilang saat menggunakan componetDidMount

Saya memiliki masalah serupa, tetapi saya menggunakan localStorage untuk mempertahankan beberapa status redux saya di browser. Bagaimana cara mengatasi masalah ini jika saya tidak dapat menggunakan window.localStorage di file store.js?

😢

Terima kasih!

@gregorskii

const windowGlobal = typeof window !== 'undefined' && window

lalu, windowGlobal.localStorage

Ya ini berhasil, tetapi saya harus mengejek penyimpanan lokal menggunakan https://www.npmjs.com/package/localstorage-memory :

const windowGlobal = typeof window !== 'undefined' && window;
const localAdapter = windowGlobal ?
  adapter(windowGlobal.localStorage) :
  adapter(memoryStorage)
;

Menggunakan https://www.npmjs.com/package/redux-localstorage.

hanya mengakses window di componentDidMount

Inti untuk js pihak ketiga.

// index.js
import React from "react";
import Link from "gatsby-link";

// import "uikit/dist/js/uikit";
// Third party JS access `window` without
// `typeof window !== "undefined"` check

class Template extends React.Component {
  componentDidMount() {
    import("uikit/dist/js/uikit")
      .then((uikit) => {
        this.uikit = uikit;
      })
      .catch((error) => console.error(error));
  }
  render() {
    // ...
  }
}

// ...

Saran @CallMeLaNN berhasil untuk saya. Dengan UIkit, saya mendapatkan:

WebpackError: Elemen tidak ditentukan

Menempatkan impor di dalam componentDidMount berhasil.

 componentDidMount() {
    try {
      this.UIkit = require("uikit/dist/js/uikit");
      this.Icons = require("uikit/dist/js/uikit-icons");
      this.UIkit.use(this.Icons);
    } catch (e) {
      console.error(e);
    }
  }

Ya, selama pengembangan, komponen reaksi hanya dijalankan di browser tempat jendela ditentukan. Saat membangun, Gatsby merender komponen ini di server di mana jendela tidak ditentukan. Umumnya dengan React, solusi untuk ini adalah hanya mengakses jendela di componentDidMount atau untuk memeriksa apakah jendela itu ada sebelum mengaksesnya. Untuk perpustakaan pihak ketiga yang tidak melakukan ini, apa yang telah Anda lakukan tampak hebat.

Akan sangat membantu untuk memunculkan ini lebih awal/mencolok. Saya mencoba membangun untuk pertama kalinya, dan ada banyak masalah yang harus saya perbaiki sekarang, karena saya tidak menyadari bahwa ini akan menjadi masalah. Ini sangat menegangkan karena saya sangat membutuhkan ini; Saya mengajukan proposal untuk sesuatu, dan saya membutuhkan situs untuk online.

Saya hanya ingin menyebarkan ke Halaman Github (setidaknya untuk saat ini), jadi saya tidak perlu SSR. Apakah ada cara untuk hanya membangun untuk klien?

Sepertinya dengan Gatsby v2, Anda harus memilih antara impor es6 dan commonjs, Anda tidak akan dapat mencampurnya lagi karena alasan yang berkaitan dengan webpack 4.

Karena itu, dan dengan asumsi Anda sudah menggunakan impor es6, sepertinya solusi @ jfaeldon adalah yang digunakan di sini dan @hitchcott tidak akan berfungsi lagi.

Bisakah seseorang mengkonfirmasi itu?

@joshwcomeau sepenuhnya setuju dengan Anda, juga menurut saya bukan ide yang baik untuk menjalankan dev di browser saja dan membangun di node.js. Perbedaannya sangat besar, dan seperti di lingkungan DEV dan PROD Anda ingin membuat lingkungan semirip mungkin, saya pikir gatsby harus melakukan hal yang sama, menjalankan dev dan membangun di lingkungan yang semirip mungkin.

jadi Bisakah saya membuatnya menjalankan build di browser? Saya tidak perlu RS.

Hai,
Saya mengalami masalah yang sama di sini, Coverflow berfungsi dengan baik untuk gatsby develop tetapi untuk build itu menimbulkan kesalahan:
WebpackError: jendela tidak ditentukan

     - react-coverflow.js:1 Object.<anonymous>
       ~/react-coverflow/dist/react-coverflow.js:1:330

     - main.js:1 Object.<anonymous>
       ~/react-coverflow/main.js:1:1

import Coverflow dari 'react-coverflow';
impor { StyleRoot } dari 'radium'

class Team memperluas React.Component {

memberikan(){
kembali(

displayQuantityOfSide={2}
navigasi
Gulir tak terbatas
aktifkan Judul
aktif={0}
media={{
' @media (lebar maks: 720px)': {
lebar: '100%',
tinggi: '200 piksel'
},
' @media (lebar minimum: 720px)': {
lebar: '100%',
tinggi: '400px',
}
}}
>
Chairperson
Deputy Chairperson
General Secretary
Recording Secretary
Treasury
Marketing

  </Coverflow>
</StyleRoot>
)

}
}

ekspor Tim default;

Saya mendapatkan kesalahan ini setelah menginstal beberapa paket, jadi itu pasti salah satunya - tetapi saya tidak dapat menemukan di mana masalahnya. Adakah yang punya tips tentang cara mencari tahu paket npm mana yang mungkin? Kesalahannya sangat umum.

@wmlutz penjelasan paling sederhana yang bisa saya tawarkan adalah, itu karena ketika Anda mengeluarkan gatsby develop untuk membangun proyek yang sedang Anda kerjakan dalam pengembangan, atau gatsby build && gatsby serve untuk membangun produksi, secara internal Gatsby akan menghasilkan halaman dan css, tautan, dan sebagainya. Tetapi satu hal yang perlu diingat adalah bahwa ini dilakukan di sisi server, di sisi node, bukan di sisi klien. Jadi simpul tidak memiliki akses ke api khusus tersebut, karena hanya untuk penggunaan klien. Dan dengan itu beberapa paket tidak akan cocok dengan Gatsby di luar kotak. Beberapa perubahan mungkin diperlukan agar mereka "bermain bagus"

@jonniebigodes - Terima kasih untuk itu. Saya pikir saya mengerti _why_ sekarang. Hal saya sekarang adalah _what_. Saya dengan bodohnya melakukan banyak pekerjaan dan mengalami kesulitan mengisolasi paket mana yang menyebabkan masalah. Tidak ada cara untuk gatsby build dengan pelaporan kesalahan yang lebih detail?

@jonniebigodes - Saya menemukan paket yang menyebabkan masalah: react toasts . Masalah saya selanjutnya adalah mencari cara untuk memperbaikinya.

_handleSubmit = async (e) => {
    e.preventDefault();
    let {email} = this.state;

    const response = await addToMailchimp(email)
    if (response.result === "success") {
      ToastsStore.success("Successfully joined the list")
    }
    if (response.result === "error") {
      ToastsStore.error("There was an error: " + result.msg)
    }
  }

@wmlutz sesuatu seperti blok kode di bawah ini. react dimuat setelah bundel statis awal diterima. Jadi pada saat pengguna mencapai _handleSubmit window akan ada.

Harap dicatat jika react toasts memanggil window pada import maka Anda mungkin masih mengalami kesalahan.

_handleSubmit = async (e) => {
    e.preventDefault();
    let {email} = this.state;

    const response = await addToMailchimp(email)
    if (response.result === "success") {
      if (window) ToastsStore.success("Successfully joined the list")
    }
    if (response.result === "error") {
      if (window) ToastsStore.error("There was an error: " + result.msg)
    }
  }

Masalah yang sama. Saya akan mencari perpustakaan Toast lain atau membuat sendiri. Seharusnya tidak membunuhku.

@joserocha3 potongan kode itu hanya akan berfungsi pada mode pengembangan. Saat panggilan ke build produksi dikeluarkan, itu akan gagal selama tahap error Building static HTML failed . Karena Gatsby akan mengintrospeksi impor dan dengan mencari paket yang dimaksud, itu akan gagal karena yang ini menggunakan beberapa api yang bukan asli node.js dan @wmlutz kode untuk paket itu cukup mudah dan tidak perlu terlalu banyak kesulitan untuk menyesuaikan dengan kasus Anda. Mengapa tidak memotong repo, memeriksa kode dan membuat satu set komponen yang akan bekerja untuk Anda?

Saya setuju dengan @jonniebigodes tentang forking. Sumber repo hanya beberapa file. Panggilan yang menyinggung adalah referensi document di ToastsContainer.tsx .

Atau coba https://github.com/gatsbyjs/gatsby/issues/309#issuecomment -387039877 disebutkan di atas.

Penyebabnya adalah cara kerja strict mode, UMD dan bundling.

Forking tidak diperlukan jika Anda menggunakan patch-package .

Lihat juga https://github.com/webpack/webpack/issues/6677 dan masalah terkait.

Itu tergantung pada kode tgat yang Anda gunakan dan apakah mereka melakukan pemeriksaan yang tepat atau menggunakan target umd sama sekali dan menentukan objek global.

Halo teman-teman masih mendapatkan masalah yang sama saya tidak menggunakan fungsi jendela apa pun di proyek saya tetapi masih menimbulkan kesalahan yang sama mengapa saya memiliki yang ini ..?

01:09:03: Membangun siap untuk memulai
11:09:05: versi build-image: 9e0f207a27642d0115b1ca97cd5e8cebbe492f63
11:09:05: tag build-image: v3.3.2
11:09:05: versi buildbot: 75cd99f62ada9e21edea53208e8baf0eab85a045
11:09:06: Mengambil dependensi yang di-cache
11:09:06: Mulai mengunduh cache sebesar 194,6 MB
11:09:07: Selesai mengunduh cache dalam 1.636999993 detik
11:09:07: Mulai mengekstrak cache
11:09:17: Selesai mengekstrak cache dalam 9.693656527 detik
11:09:17: Selesai mengambil cache dalam 11,478174001 detik
11:09:17: Mulai mempersiapkan repo untuk build
11:09:17: Mempersiapkan Git Reference pull/21/head
11:09:18: Ditemukan netlify.toml. Mengganti konfigurasi situs
11:09:18: Memulai skrip build
11:09:18: Menginstal dependensi
11:09:19: Mulai memulihkan versi simpul yang di-cache
11:09:22: Selesai memulihkan versi simpul yang di-cache
11:09:23: v10.16.0 sudah diinstal.
11:09:24: Sekarang menggunakan simpul v10.16.0 (npm v6.9.0)
11:09:25: Mencoba ruby ​​versi 2.6.2, baca dari lingkungan
11:09:27: Menggunakan ruby ​​versi 2.6.2
11:09:27: Menggunakan PHP versi 5.6
11:09:27: Mulai memulihkan modul simpul yang di-cache
11:09:27: Selesai memulihkan modul simpul yang di-cache
11:09:27: Mulai memulihkan cache benang yang di-cache
11:09:27: Selesai memulihkan cache benang yang di-cache
11:09:28: Memasang modul NPM menggunakan Yarn versi 1.9.4
11:09:29: pemasangan benang v1.9.4
11:09:29: paket peringatan.json: Tidak ada bidang lisensi
11:09:29: paket peringatan-lock.json ditemukan. Proyek Anda berisi file kunci yang dihasilkan oleh alat selain Benang. Disarankan untuk tidak mencampur manajer paket untuk menghindari inkonsistensi resolusi yang disebabkan oleh file kunci yang tidak disinkronkan. Untuk menghapus peringatan ini, hapus package-lock.json.
11:09:29: peringatan [email protected]: Tidak ada bidang lisensi
11:09:29: [1/4] Menyelesaikan paket...
11:09:31: [2/4] Mengambil paket...
11:09:31: (node:1201) [DEP0005] DeprecationWarning: Buffer() tidak digunakan lagi karena masalah keamanan dan kegunaan. Silakan gunakan metode Buffer.alloc(), Buffer.allocUnsafe(), atau Buffer.from() sebagai gantinya.
11:10:04: info [email protected]: Platform "linux" tidak kompatibel dengan modul ini.
11:10:04: info "[email protected]" adalah ketergantungan opsional dan pemeriksaan kompatibilitas yang gagal. Mengecualikannya dari instalasi.
11:10:04: [3/4] Menautkan dependensi...
11:10:04: peringatan "gatsby > [email protected]" memiliki ketergantungan rekan yang salah "graphql@^0.12.0 || ^0.13.0".
11:10:04: peringatan "gatsby > [email protected]" memiliki ketergantungan rekan yang salah "graphql@^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0".
11:10:04: peringatan "gatsby > [email protected]" memiliki ketergantungan rekan yang salah "graphql@^0.13.0".
11:10:04: peringatan "gatsby-plugin-netlify > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "webpack@>=4.4.0".
11:10:04: peringatan "gatsby-plugin-sass > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "webpack@^3.0.0 || ^4.0.0".
11:10:04: peringatan " > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "webpack@^2.0.0 || ^3.0.0 || ^4.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-auth@^2.0.4".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-util@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-auth@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-util@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-auth@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-util@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-auth@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-util@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "immutable@^3.8.2".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-util@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-lib-util@^2.0.4".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "moment@^2.11.2".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.5".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang tidak terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-emotion@^9.2.5".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@^3.7.6".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "react-immutable-proptypes@^2.1.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "netlify-cms-ui-default@^2.0.0".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-date > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "moment@>=2.16.0".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@>=3.8.1".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@^3.8.2".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang salah "slate@^0.32.0".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@^3.8.1".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang salah "slate@^0.33.3".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "slate-schema-violations@^0.1.7".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@>=3.8.1".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@>=3.8.1".
11:10:04: peringatan "netlify-cms > netlify-cms-core > redux-notifications > [email protected]" memiliki ketergantungan rekan yang salah "redux@^2.0.0 || ^3.0.0".
11:10:04: peringatan "netlify-cms > netlify-cms-widget-markdown > slate-react > [email protected]" memiliki ketergantungan rekan yang belum terpenuhi "immutable@>=3.8.1".
11:10:04: peringatan " > [email protected]" memiliki ketergantungan rekan yang salah "react@^16.8.3".
11:10:21: [4/4] Membuat paket baru...
11:10:26: Selesai dalam 56.59 detik.
11:10:26: Modul NPM dipasang menggunakan Benang
11:10:26: paket peringatan.json: Tidak ada bidang lisensi
11:10:26: Mulai memulihkan cache go cache
11:10:26: Selesai memulihkan cache go cache
11:10:27: GOOS tidak disetel;
11:10:27: GOARCH tidak disetel;
11:10:27: export GOROOT='/opt/buildhome/.gimme/versions/go1.12.linux.amd64';
11:10:27: export PATH="/opt/buildhome/.gimme/versions/go1.12.linux.amd64/bin:${PATH}";
11:10:27: buka versi >&2;
11:10:27: ekspor GIMME_ENV='/opt/buildhome/.gimme/env/go1.12.linux.amd64.env';
11:10:27: buka versi go1.12 linux/amd64
11:10:27: Menginstal perintah yang hilang
11:10:27: Verifikasi direktori yang dijalankan
11:10:27: Menjalankan perintah pengguna: npm run build
11:10:27: > [email protected] build /opt/build/repo
11:10:27: > run-p build:**
11:10:28: > [email protected] build:app /opt/build/repo
11:10:28: > npm run clean && gatsby build
11:10:28: > [email protected] clean /opt/build/repo
11:10:28: > rimraf .cache publik
11:10:32: Menggunakan konfigurasi lingkungan: 'produksi'
11:10:32: sukses membuka dan memvalidasi gatsby-configs — 0,059 dtk
11:10:32: berhasil memuat plugin — 0,454 s
11:10:34: sukses diPreInit — 1,665 s
11:10:34 AM: berhasil menghapus file html dan css dari build sebelumnya — 0,008 s
11:10:34 AM: berhasil menginisialisasi cache — 0,011 s
11:10:34: berhasil menyalin file gatsby — 0,035 s
11:10:34: sukses di PreBootstrap — 0,009 dtk
11:10:51 AM: sumber sukses dan node transformasi — 17.231 s
11:10:52: skema pembangunan sukses — 0,896 dtk
11:10:55: sukses membuat Halaman — 2,772 detik
11:10:55: sukses createPagesStatefully — 0,062 s
11:10:55: sukses diPreExtractQueries — 0,006 s
11:10:56: skema pembaruan sukses — 0,712 dtk
11:10:56: berhasil mengekstrak kueri dari komponen — 0,166 detik
11:10:57: sukses menjalankan kueri graphql — 1,068 s — 1460/1460 1368,43 kueri/detik
11:10:57: sukses menulis data halaman — 0,035 dtk
11:10:57: berhasil menulis data pengalihan — 0,001 s
11:10:57: sukses diPostBootstrap — 0,010 dtk
11:10:57: info bootstrap selesai - 28.304 s
11:12:14: sukses Membangun bundel JavaScript dan CSS produksi — 76.329 detik
11:12:14:
11:12:14: gatsby-plugin-purgecss:
11:12:14: Ukuran CSS Sebelumnya: 305.33 KB
11:12:14 AM: Ukuran CSS Baru: 305.33 KB (-0.00%)
11:12:14: Dihapus ~0,00 KB CSS
11:12:14:
11:12:23: kesalahan Membangun HTML statis gagal
11:12:23: Lihat halaman dokumen kami tentang debugging build HTML untuk bantuan https://gatsby.app/debug-html
11:12:23: 48 | window.YouTubeIframeLoader = YouTubeIframeLoader;
11:12:23: 49 | }
11:12:23: > 50 | }(jendela));
11:12:23: | ^
11:12:23: 51 |
11:12:23:
11:12:23: WebpackError: ReferenceError: jendela tidak ditentukan
11:12:23:
11:12:23: - index.js:50 Object../node_modules/youtube-iframe/index.js
11:12:23: [lib]/[youtube-iframe]/index.js:50:2
11:12:23:
11:12:23: - bootstrap:19 __webpack_require__
11:12:23: lib/webpack/ bootstrap:19 :1
11:12:23:
11:12:23: - MediaAutoTrack.js:15 Object../node_modules/@aws-amplify/analytics/lib/Provid ers/AmazonPersonalizeHelper/MediaAutoTrack.js
11:12:23: [lib]/[@aws-amplify]/analytics/lib/Providers/AmazonPersonalizeHelper/MediaAu toTrack.js:15:27
11:12:23:
11:12:23: - bootstrap:19 __webpack_require__
11:12:23: lib/webpack/ bootstrap:19 :1
11:12:23:
11:12:23: - index.js:7 Object../node_modules/@aws-amplify/analytics/lib/Providers/Amazon PersonalizeHelper/index.js
11:12:23: [lib]/[@aws-amplify]/analytics/lib/Providers/AmazonPersonalizeHelper/index.js:7:10
11:12:23:
11:12:23: - bootstrap:19 __webpack_require__
11:12:23: lib/webpack/ bootstrap:19 :1
11:12:23:
11:12:23: - AmazonPersonalizeProvider.js:52 Object../node_modules/@aws-amplify/analytics /lib/Providers/AmazonPersonalizeProvider.js
11:12:23: [lib]/[@aws-amplify]/analytics/lib/Providers/AmazonPersonalizeProvider.js:52 :33
11:12:23:
11:12:23: - bootstrap:19 __webpack_require__
11:12:23: lib/webpack/ bootstrap:19 :1
11:12:23:
11:12:23: - index.js:7 Object../node_modules/@aws-amplify/analytics/lib/Providers/index. js
11:12:23: [lib]/[@aws-amplify]/analytics/lib/Providers/index.js:7:35
11:12:23:
11:12:23: - bootstrap:19 __webpack_require__
11:12:23: lib/webpack/ bootstrap:19 :1
11:12:23:
11:12:23: - index.js:33 Object../node_modules/@aws-amplify/analytics/lib/index.js
11:12:23: [lib]/[@aws-amplify]/analytics/lib/index.js:33:10
11:12:24: gagal selama tahap 'membangun situs': Skrip build mengembalikan kode keluar bukan nol: 1
11:12:23:
11:12:23: - bootstrap:19 __webpack_require__
11:12:23: lib/webpack/ bootstrap:19 :1
11:12:23:
11:12:24: Mematikan pencatatan, 58 pesan tertunda

Saya menggunakan netlify untuk sisi server saya

Jika Anda yakin Anda tidak menggunakan jendela, sebuah paket kemungkinan besar.

Anda harus mendefinisikan jendela kosong di webpack.

Ini tidak super lurus ke depan, tetapi ini akan membawa Anda ke arah yang benar:

https://stackoverflow.com/questions/37656592/define-global-variable-with-webpack

Saya tidak begitu yakin mengapa masalah ini ditutup? Masalah ini, pada kenyataannya, mungkin yang paling kritis ketika Gatsby prihatin dan seluruh filosofi itu harus diubah dan diperbaiki.

Sangat buruk bahwa browser dan logika SSR digabungkan. Belum lagi fakta bahwa Anda menjalankan satu versi kode dalam pengembangan dan perbedaannya dalam produksi. Ini benar-benar buruk. Mengapa Anda membuat bangunan seperti itu? Satu-satunya perbedaan antara keduanya harus diaktifkan fungsi debugging dalam pengembangan dan misalnya peta sumber atau apa pun. Ini benar-benar membuat sulit dan menarik untuk menggunakan Gatsby.

Menurut pendapat saya, Anda harus membuka kembali ini dan memprioritaskan masalah ini. Masalah ini membuat orang benar-benar menyerah pada ribuan modul di luar sana yang bergantung pada jendela dan tidak semuanya dapat diimpor di componentDidMount misalnya modul seperti HOC dll.

Meskipun saya tidak setuju, ini adalah poin yang menyakitkan. Orang bisa berargumen bahwa perpustakaan yang ditulis dengan logika di sekitar variabel jendela tidak cocok untuk penggunaan SSR. Pustaka itu sendiri harus memeriksa apakah jendela ditentukan dan berfungsi dalam mode SSR.

Tidak ada komentar lain untuk poin lebih dalam yang Anda buat, itu adalah diskusi filosofis yang lebih cocok untuk pengelola.

Dengan segala hormat, apa yang Anda tulis tidak masuk akal. Mengapa seseorang yang sedang membangun perpustakaan "khusus browser" memeriksa apakah objek jendela ada? Bisakah Anda memberi nama atau menunjuk ke satu perpustakaan di seluruh registri NPM yang melakukan ini? Atau Anda mengatakan bahwa semua perpustakaan yang ditulis orang itu salah?

Atau orang harus mempertimbangkan bahwa ada kerangka kerja yang disebut "Gatsby" yang membutuhkan ini? Seseorang harus dapat menggunakan Gatsby pada satu atau lain ujung dan ujung tersebut harus SEPENUHNYA dipisahkan. Ini adalah satu-satunya poin, sungguh. Tidak ada yang filosofis tentang itu.

Secara desain, Gatsby adalah generator situs statis. Sebagian besar pekerjaan yang dilakukan untuk menyelesaikannya dilakukan di luar browser pada waktu kompilasi. Ini bukan hanya alat "klien" atau "browser".

Render sisi server menurut definisi dilakukan di sisi "server", di mana "jendela" bukanlah apa-apa.

Kompilasi Gatsby dilakukan dengan Webpack, webpack secara default tidak memasang variabel jendela. Dari pengalaman saya, tidak hanya ada satu cara untuk mengadaptasi pustaka klien agar berfungsi di bawah webpack. Hal ini menyebabkan konfigurasi Gatsby itu sendiri tidak mampu memberikan solusi satu tembakan sederhana untuk memperbaiki semua perpustakaan yang bergantung pada "jendela".

FWIW Saya pikir masuk akal untuk memisahkan bagian alat untuk mendiskusikan bagian mana yang menghambat apa yang ingin Anda lakukan.

image

Apakah halaman ini membantu?
0 / 5 - 0 peringkat