gpt4 book ai didi

javascript - 进行 gatsby 构建时未定义窗口

转载 作者:行者123 更新时间:2023-12-04 13:43:25 26 4
gpt4 key购买 nike

我正在尝试将振幅 js 与 React 和 Gatsby 集成。做 gatsby developer 时一切看起来都不错,因为它发生在浏览器中,但是当我尝试 gatsby build 时,我收到以下错误,因为 Gatsby build 发生在我们没有 window 对象的服务器上:

WebpackError: window is not defined



振幅.js:2428
~/amplitude-js/amplitude.js:2428:2

这是我的振幅模块:
import amplitude from 'amplitude-js';

amplitude.getInstance().init('API-KEY', null, {
// optional configuration options
saveEvents: true,
includeUtm: true,
includeReferrer: true,
});

Gatsby 构建不起作用:未定义窗口。

如果我不在项目中的任何地方使用此部分,则错误指向此部分:
if (windowLocalStorageAvailable()) {
localStorage = window.localStorage;
} else if (window.globalStorage) { // <- here

// Firefox 2-3 use globalStorage
// See https://developer.mozilla.org/en/dom/storage#globalStorage
try {

最佳答案

发生此错误是因为 Amplitude JS SDK 期望位于浏览器窗口对象内,并且可以访问窗口上下文以从中收集 IP 地址、操作系统、浏览器、来自 cookie 的 device_id 等属性。

您的应用程序是否可以从任何类型的后端发送事件?

要将数据发送到 Amplitude,您不需要使用 Amplitude SDK,您也有 REST 端点。
https://help.amplitude.com/hc/en-us/articles/360032842391-HTTP-API-V2

HTTP API 也有 3rd 方维护的 nodejs 包装器 https://github.com/crookedneighbor/amplitude

关于javascript - 进行 gatsby 构建时未定义窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53406367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com