首页 > 其他分享 >require和import的区别以及相互使用的方式

require和import的区别以及相互使用的方式

时间:2024-03-02 17:44:44浏览次数:20  
标签:Node fs log require 模块 相互 import

Node.js 里可分为 CommonJS 模块和 ECMAScript 模块(ESM)两种不同的模块系统。

CommonJS 模块是 Node.js 最初支持的模块系统,它使用 require() 函数来导入模块,使用 module.exportsexports 对象来导出模块。这种模块系统通常只能在 Node.js 环境下使用,并且不允许在浏览器环境中使用。

ECMAScript 模块是 JavaScript 的标准模块系统,它使用 importexport 关键字来导入和导出模块。它可以在 Node.js 环境下和现代浏览器环境中使用,具有更好的跨平台兼容性和可移植性。Node.js 从版本12开始支持 ECMAScript 模块作为实验性功能,并在版本14中正式支持。

cjs文件使用mjs方法

 1 //默认方式
 2 const fs = require("fs");
 3 console.log(fs);
 4 
 5 //转换方式
 6 import("fs")
 7   .then((module) => {
 8     console.log(module);
 9   })
10   .catch((error) => {
11     console.log("处理错误");
12   });

 

mjs文件使用cjs方法

 1 // 默认方法
 2 import fs from "fs";
 3 
 4 console.log(fs);
 5 
 6 //转换的方法
 7 import { createRequire } from "module";
 8 const require = createRequire(import.meta.url);
 9 const fs = require("fs");
10 
11 console.log(fs);

 

 

标签:Node,fs,log,require,模块,相互,import
From: https://www.cnblogs.com/wzhqueeen/p/18048934

相关文章

  • Centos 上python3 pip3安装报错:WARNING: pip is configured with locations that requ
    pip3安装报错:WARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.在网上查一下原因是openssl版本不兼容导致,centos默认带的openssl版本太低,要升级openssl版本。openssl  下载地址:https://www.openssl.org/s......
  • 关于import cvxopt :ImportError: DLL load failed: 找不到指定的模块。
    前提:前天再写python代码时遇到需要使用到cvxopt包求解QP问题,但是之前却没有安装过这个包,所以对其进行安装。报错:在pipinstallcvxopt后直接使用,出现报错。之后在网上查各种解决办法的方案,但在运行后均出现不同报错情况。我所需要解决的问题主要是numpy、scipy和cvxopt之间不兼容......
  • from Crypto.Util.Padding import pad,unpad 报错,没有找到依赖
    1、安装pipinstallpycryptodomepipinstallCrypto2、安装完成后重启idea,发现还是没有打开依赖包所在的文件夹:安装位置\Lib\site-packages发现Crypto是小写,将代码中的引入改成小写fromcrypto.Util.Paddingimportpad,unpad 3、打开crypto文件夹,看到Util和Ciph......
  • require.js
    require.js的加载使用require.js的第一步,是先去官方网站下载最新版本。下载后,假定把它放在js子目录下面,就可以加载了。<scriptsrc="js/require.js"></script>有人可能会想到,加载这个文件,也可能造成网页失去响应。解决办法有两个,一个是把它放在网页底部加载,另一个是写成下......
  • 需要在本地实现一个聊天室,多个tab页相互通信,不能用websocket,你会怎么做?
    可以考虑使用以下方法:使用LocalStorage:这个存储API可在浏览器的不同标签页之间共享数据。当一个标签页发送消息时,将消息存储在LocalStorage中。其他标签页可以监听该存储区的变化,并读取最新的消息内容来实现通信效果。//监听变化2window.addEventListener("storage",(e)=>......
  • 报错真正的原因export ‘default’(imported as‘Vue’) was not found in‘vue
    运行npmrundev后报错:export'Vue'(importedas'Vue')wasnotfoundin'vue' 并且加载不出页面,查了很久,终于找到原因:报错信息:WARNINGin./src/index.js24:13-16export'Vue'(importedas'Vue')wasnotfoundin'vue'(p......
  • 问答:C程序为何for循环和while循环无法相互替代?
    百鸡百钱问题:C代码:include<stdio.h>main(){intcock,hen,chicken;for(cock=0;cock<=20;cock++)for(hen=0;hen<=33;hen++){chicken=100-cock-hen;/if(5*cock+3*hen+chicken/3.0==100)printf("cock=%2d,hen=%2d,chicken=%2d......
  • 用宝塔设立分发Directory.Build.props及其Import文件的网站
    新建站点服务器名称我们约定是dev.amihome.cn创建的默认站点有下面4个文件把本地的文件,用宝塔上传上图我们是把本地的Directory.Build.props文件上传到了网站的根目录然后我们要上传本地的version-numbers文件夹到网站根目录下:最终我们windows下的相关文件上传到了网站......
  • delphi Byte 与 字符串(AnsiString、WideString) 相互转换
    Byte与字符串(AnsiString、WideString)相互转换代码String转ByteprocedureTForm1.Button1Click(Sender:TObject);varbuf:TBytes;I:Integer;begin//ANSI编码buf:=BytesOf('测试内容');Memo1.Lines.Add('ANSI编码');forI:=0toLength(buf)......
  • 用Docker发布网站时,自动下载Directory.Build.props及其Import的文件
    为Blazor网站项目,“添加Docker支持”这时,网站项目根目录下会新增Dockerfile。#Seehttps://aka.ms/customizecontainertolearnhowtocustomizeyourdebugcontainerandhowVisualStudiousesthisDockerfiletobuildyourimagesforfasterdebugging.FROMmcr.......