如何在 Node/Browser 模块中选择性地使用 `window` 变量?

How to optionally use `window` variable in Node/Browser module?

运行 通过 NodeJS 从库导入的脚本失败,因为库引用了 window 变量。即使在图书馆,它看起来像这样:

{
  baseUrl: (typeof window !== undefined ? window.location.origin : '') + "/blah",
}

当通过 NodeJS 运行 脚本时,此行仍然导致以下错误:

ReferenceError: window is not defined

我认为添加 typeof window !== undefined 检查就足够了,但显然情况并非如此。我在这里错过了什么? (FWIW 导入的模块是 UMD 模块。)

typeof 给你一个字符串,所以你需要比较 "undefined",而不是 undefined。将您的代码更改为:

{
  baseUrl: (typeof window !== "undefined" ? window.location.origin : '') + "/blah",
}