当前位置: 首页 > 知识库问答 >
问题:

javascript - js 怎样判断环境,在node环境时才引入 对象?

尉迟高澹
2023-05-24
try {
if(!localStorage)
import {localStorage} from './local_storage.js'
}

node环境怎么能完成上面这种操作。。。我希望代码在node和浏览器都能执行。
用了top await所以node设置了type : module,

共有2个答案

茅华灿
2023-05-24
if (typeof window === 'undefined') {
  // We are in node.js environment
  import('./local_storage.js').then((module) => {
    const localStorage = module.localStorage;
    // Use localStorage...
  });
}
孙才捷
2023-05-24

this === window ? '浏览器': 'node'
// globalThis 为浏览器和node都存在与全局
Object.prototype.toString.call(globalThis) === '[object Window]' ? '浏览器环境':'node环境'

 类似资料:
  • 本文向大家介绍html5怎么判断是否在wifi环境?相关面试题,主要包含被问及html5怎么判断是否在wifi环境?时的应答技巧和注意事项,需要的朋友参考一下 https://developer.mozilla.org/en-US/docs/Web/API/Network_Information_API

  • 问题内容: 我想要一个npm脚本来创建/配置/等。最后导入一个SQL转储。整个创建,配置等都可以正常工作,但是,我无法使导入正常工作。永远不会插入数据。这就是我所拥有的(不要嵌套嵌套的回调,因为它们会变成promise): 我还尝试了Sequelize(ORM)进行以下操作: 问题答案: 这是我使用迁移框架设置初始Sequelized导入的方法。这里有很多事情要做,但总之我: 在migration

  • 使用文本编辑器来开发Node程序,最大的缺点是效率太低,运行Node程序还需要在命令行单独敲命令。如果还需要调试程序,就更加麻烦了。 所以我们需要一个IDE集成开发环境,让我们能在一个环境里编码、运行、调试,这样就可以大大提升开发效率。 Java的集成开发环境有Eclipse,Intellij idea等,C#的集成开发环境有Visual Studio,那么问题又来了:Node.js的集成开发环境

  • New in version 1.1. 你完全有可能遇到一些更新包需要通过proxy才能正常获取,或者甚至一部分包需要通过proxy升级而另外一部分包则不需要通过proxy.或者可能你的某个脚本需要调用某个环境变量才能正常运行. Ansible 使用 ‘environment’ 关键字对于环境部署的配置非常简单容易,下面是一个使用案例: - hosts: all remote_user: ro

  • 标准的 Python 发行版不会与 NumPy 模块捆绑在一起。 一个轻量级的替代方法是使用流行的 Python 包安装程序 pip 来安装 NumPy。 pip install numpy 启用 NumPy 的最佳方法是使用特定于您的操作系统的可安装的二进制包。 这些二进制包含完整的 SciPy 技术栈(包括 NumPy,SciPy,matplotlib,IPython,SymPy 以及 Pyt

  • 环境 shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 OS 当前主流的操作系统都支持shell编程,本文档所述的shell编程是指Linux下的shell,讲的基本都是POSIX标准下的功能,所以,也适用于Unix及BSD(如Mac OS)。 Linux Linux默认安装就带了shell解释器。 Mac OS Mac OS不仅带了