首页 > 其他分享 >commonjs

commonjs

时间:2023-05-10 23:23:24浏览次数:46  
标签:Node commonjs 浏览器 CommonJS js 模块 加载

Commonjs的缺点

  1. 模块加载器由 Node.js 提供,依赖了 Node.js 本身的功能实现,比如文件系统,如果 CommonJS 模块直接放到浏览器中是无法执行的。当然, 业界也产生了 browserify 这种打包工具来支持打包 CommonJS 模块,从而顺利在浏览器中执行,相当于社区实现了一个第三方的 loader。
  2. CommonJS 本身约定以同步的方式进行模块加载,这种加载机制放在服务端是没问题的,一来模块都在本地,不需要进行网络 IO,二来只有服务启动时才会加载模块,而服务通常启动后会一直运行,所以对服务的性能并没有太大的影响。但如果这种加载机制放到浏览器端,会带来明显的性能问题。它会产生大量同步的模块请求,浏览器要等待响应返回后才能继续解析模块。也就是说,模块请求会造成浏览器 JS 解析过程的阻塞,导致页面加载速度缓慢。

标签:Node,commonjs,浏览器,CommonJS,js,模块,加载
From: https://www.cnblogs.com/kitebear/p/17389662.html

相关文章

  • 前端科普系列(3):CommonJS 不是前端却革命了前端
    作者:Morrain一、前言上一篇《前端科普系列(2):Node.js换个角度看世界》,我们聊了Node.js相关的东西,Node.js能在诞生后火到如此一塌糊涂,离不开它成熟的模块化实现,Node.js的模块化是在CommonJS规范的基础上实现的。那CommonJS又是什么呢?先来看下,它在维基百科上的定义:CommonJS是......
  • CommonJS和ES6中的导入导出使用
    1.CommonJS使用exportsconstname='张三'functionFn(){return1}//导出单个数据exports.name=nameexports.Fn=Fn//导入数据//可使用解构cons......
  • [未解决] Vite 永远年轻,永远被commonjs+vite组合拳背刺。打包后第三方依赖报错“requi
    这个问题遇到不下三次了,每次都有新的被折磨体验,令人头秃。希望这次可以彻底解决。这次遇到问题的是mapboxgl的标绘插件@mapbox/mapbox-gl-draw的圆形扩展插件mapbox-gl-dr......
  • 为什么commonjs不能treeshaking
    因为只有模块是静态导入时,treeshaking才有效果,commonjs可以有如下写法if(flag){require('./a.js')}else{require('./b.js')}我是这样理解的,在代码没有运行之前,......
  • 【js】CommonJS、AMD、CMD三种规范
    前言这三个规范都是为Js模块化加载而生的,使模块能够按需加载,使系统同庞杂的代码得到组织和管理。模块化的管理代码使多人开发得到了更好的合作一、CommonJS是一种为JS的......
  • JavaScript模块化理解-CommonJS、AMD、CMD、UMD、ES6
    参考:JavaScript模块化-CommonJS、AMD、CMD、UMD、ES6前端模块化——彻底搞懂AMD、CMD、ESM和CommonJS 在JS早期,使用script标签引入JS,会造成以下问题:加载的时候阻塞......
  • 【NodeJS】CommonJS原理
    (function(modules){varinstalledModules={};function__webpack_require__(moduleId){if(installedModules[moduleId]){return......
  • Nodejs:ESModule和commonjs,傻傻分不清
    最近写nodejs脚本的时候遇到了commonjs和ESModule的问题,正好之前用得稀里糊涂的,这次好好学习一下。ESModule导出仅导出namedexports:命名导出,每次可以导出一个或......
  • 基于 `CommonJS` 谈谈前端模块化
    基于CommonJS谈谈前端模块化前端模块化的内容贯穿我们平时的开发工作,最早的AMD等模块化组织方式现在已经很少使用,本课程基于目前最常见的CommonJS(以下简称为CMJ)出......
  • package.json中的type字段含义,及commonjs与ES6的区别
     package.json中的type字段含义如果最近的package.json文件包含一个顶级字段“type”,其值为“module”,则以.js结尾或没有任何扩展名的文件将作为ES模块进行加载。 如......