- 2024-11-01前端的全栈Deno篇(五):与前端保持一致的模块化方案,摆脱ERR_REQUIRE_ESM和mjs、cjs等模块混乱带来的心智负担
在现代JavaScript开发中,模块化系统的演变经历了多次变革,使得前端和后端开发人员在选择模块加载方式时常常感到困惑。尤其是Node.js所采用的CommonJS和ESM(ECMAScriptModules)两种模块体系,以及文件扩展名的多样性(如.cjs、.mjs和.js)带来的复杂性和混乱。Deno的诞生以及其2.0版
- 2024-10-31Vite微应用如何接入qiankun
qiankun是一个很流行的微前端解决方案。之前我也详细的分析过qiankun的原理,感兴趣的可以看看。Vite是当下比较流行的构建工具,它对标的是webpack,并作为Vue3脚手架的默认工具替代了老版vue-cli中的webpack。当然,Vite不仅仅能使用在Vue中,React+Vite也是很好用的。它的特点就是
- 2024-10-20视野修炼第106期 | Node23新特性
欢迎来到第106期的【视野修炼-技术周刊】,下面是本期的精选内容简介
- 2024-10-13前端工程化
1.概念前端开发的管理工具。2.模块化和包管理分解与聚合函数文件问题1.全局污染2.依赖混乱模块化标准民间标准commonjs(重要)运行时amdcmdumd官方标准EcmaScriptModuleESM(重要)编译时commonjsletxxx=require("a.js");运行时:只有运行过后才能确定依赖关
- 2024-09-23在esm中优雅的使用__dirname
在esm中没有这些__dirname、require,因为这是cjs的规范。但是通过如下代码,你即可使用上importpathfrom"node:path";import{createRequire}from"node:module";import{fileURLToPath}from"node:url";//定义一个全局变量__dirnameletdirnameVal=''
- 2024-09-18commonJs和ESModule的区别
1.规范的区别ESM模块的导入使用Import关键字,导出使用export关键字。commonJs导入使用require关键字,导出使用module.export 2.文件名后缀不一样(这一点不用记,针对Node)在node.js,默认将.js后缀文件识别为CJS模块,.cjs也是CJS模块,.mjs文件识别为esm模块。 3.模块加载时机
- 2024-09-13运行ts文件踩坑
1.nodetest.ts是不可以运行ts文件的,建议全局安装ts-node,只在项目的终端内安装的话是无效不能使用ts-node的2."ts-node ./src/utils/moduleTest/modulec.ts"出错:ERR_UNKNOWN_FILE_EXTENSION这时候需要改为:ts-node--esm./src/utils/moduleTest/modulec.ts具体原因:当模
- 2024-08-15react in cdn
index.html:<!doctypehtml><html><head><metacharset="utf-8"/><metaname="viewport"content="width=device-width"/><title>Ariakit</title></head><body>
- 2024-08-03weapp.qrcode.esm.js
/***weapp.qrcode.jsv1.1.5*/varhasOwn=Object.prototype.hasOwnProperty,toStr=Object.prototype.toString,defineProperty=Object.defineProperty,gOPD=Object.getOwnPropertyDescriptor,isArray=function(t){return"function"==typeofArray.isArray?Ar
- 2024-07-09ESM(ESModule)和CJS(CommonJS)的区别
ESM和CJS的区别1.CJS2.EMS3ESM与CJS的区别3.1ESM输出的是==值的引用==,CJS输出的是==值得拷贝==3.2CJS的输出是运行时加载,而ESM是编译时输出接口3.3CJS是同步加载,ESM是异步加载1.CJSNode.js模块加载规范.js或.cjs文件,使用require加载,module.exports/exports
- 2024-07-05Elasticsearch数据迁移工具之ESM
Elasticsearch数据迁移工具之ESMESM版本:0.5.0上传esm的tar包并解压查看一下帮助文档并确认安装成功ESM各个参数用法简介在使用Elasticsearch的时候不可避免的会涉及到集群的升级或者是业务的迁移等场景,此时就需要对数据进行迁移,es数据迁移的工具有很多比如reindex、esm、elas
- 2024-06-20浅析Vite本地构建原理
前言随着Vue3的逐渐普及以及Vite的逐渐成熟,我们有必要来了解一下关于vite的本地构建原理。对于webpack打包的核心流程是通过分析JS文件中引用关系,通过递归得到整个项目的依赖关系,并且对于非JS类型的资源,通过调用对应的loader将其打包编译生成JS代码,最后再启动开发服务器。了解
- 2024-06-11Vue3 运行可以,build 打包发布报错
Vue多环境配置https://www.cnblogs.com/vipsoft/p/16696640.htmlconfig.jsconstconfig={title:'管理系统(开发)',//开发、测试apiUrl:'http://www.vipsoft.com.cn',version:'v1.0.1'}exportdefaultconfigmain.jsimportconfigfrom
- 2024-06-06ICML 2024|用于统一分子建模的多尺度蛋白质语言模型ESM-AA
多模态蛋白质语言模型是一个新兴的方向。《Multi-scaleProteinLanguageModelforUnifiedMolecularModeling》是一篇发表在ICML2024的文献,作者是KangjieZheng、SiyuLong、TianyuLu、JunweiYang、XinyuDai、MingZhang、ZaiqingNie、Wei-YingMa和HaoZhou。文章的
- 2024-05-29__dirname is not defined in ES module scope
在package.json中的type=module的项目中,我创建了一个ts文件,类型是esm的类型。这里的报错是因为我们错误的使用了module的语法到esm的文件中,要解决这个问题的方法有两种,第一种改为module,另一种是改为esm的写法。首先是第一种改为module的写法,那就是把import改为require,然后由于
- 2024-05-19vitepress使用createContentLoader时遇到["vitepress" resolved to an ESM file. ESM file cannot be
在使用vitepress构建一个所有博客的概览页的时候,使用到了createContentLoader这个api,但是在index.data.ts中定义并导出后,在md文件中调用遇到了下面这个问题:Buildfailedwith1error:node_modules/esbuild/lib/main.js:1374:27:ERROR:[plugin:externalize-deps]"vitepress
- 2024-05-05tmp
<template><h2>名字:{{name}}</h2><h2>年龄:{{age}}</h2><button@click="changeName">修改名字</button><button@click="changeAge">修改年龄</button><button@click="showTe
- 2024-04-29Tree-shaking ESModule
一、需求背景与收益Tree-shaking剪裁无用js与css,目前在dc组实现,首页效果如下:1、原文件5.19M,优化后2.61M2、gzip文件988.25KB, 优化后665.63KB3、Js文件减少三分之一,项目越久收益越高4、运行速度和用户体验都会提升5、Lighthouse性能评分提升大概4-8分6、属于攻坚技术
- 2024-04-10用代码验证,esm 导出的是值的引用,commonjs导出的是值的拷贝
首先需要学习一下esm和commonjs的区别,其中一条关于导出值我们可以手动验证一下,先记住结论esm导出的是值的引用commonjs导出的是值的拷贝没错我又遇到这个问题了,面试官先问我commonjs和esm有啥区别?然后问如果commonjs导出一个模块,在模块内部改变一个值,模块外部
- 2024-04-01vant-weapp 提供的areaList城市数据的路径问题
根据vant官网提供的引入方法会报错。通过add@vant/area-data会下载一份index.esm.mjs文件城市数据在项目中,我尝试了用各种路径来获取还是报错,最后只能将该index.esm.mjs文件复制到其他文件中,然后引入就可以了。 1.新建一个文件夹专门放数据的,然后在建个文件用来放这个
- 2024-04-01"sideEffects": [ "dist/*", "esm/**/style/*", "lib/**/
这段配置出现在一个软件包的package.json文件中,具体是"sideEffects"字段。这个字段用于告知打包工具(如Webpack、Rollup等)哪些模块或文件可能存在副作用(sideeffects),以便在进行TreeShaking(摇树优化)时做出正确决策。TreeShaking是一种优化技术,旨在在打包过程中去除那些在
- 2024-03-30ts-jest无法编译执行ESM【解决步骤】
很常见的错误就是SyntaxError:Unexpectedtoken'export',需要确保以下操作,才能解决问题tsconfig.json中compilerOptions.module与target要设置为ESNext,compilerOptions.target也要设置为ESNext,esModuleInterop设置为true,确定tsc将目标代码编译为ESM版本。其次m
- 2024-03-05前端 vite 的原理
很多前端框VUEReact都是使用webpack打包为何使用vitewebpack打包很慢,热更不友好一个模块的变化导致整个项目的重新编译vite真正的按需加载:利用浏览器ESM支持,实现真正的按需加载原理由于ES6的在浏览器的支持ESM可以只实现在浏览器直接使用import发送http请求
- 2024-01-20对esm模块import理解
//模块a.jsexportleta=1;exportfunctionaddA(){a++;}//index.jsimpot{a,addA}from'./a.js';console.log('a=',a);//1addA();console.log('a=',a);//2//other.jsimpot{a,addA}from'./a.js'
- 2024-01-18tsx nodejs 增强支持执行typescript 以及esm
tsx属于一个nodejs的增强包含的特性快速的按需ts以及esm编译支持commonjs以及esm包支持下一代ts扩展(.cts,.mts)隐藏体验特性警告tsrepl解析tsconfig.json适用的场景可以执行运行ts而不需要进行配置更好的与esm,cjs依赖交互说明tsx是一个不错的本地开发工具,可以方便不同模