当前位置: 首页 > news >正文

前端 - vue - - import引入报错 require引入不报错 package.json中type的用法 延迟导入资源

场景:

在引入一个文件/插件时,使用import引入会报错 而当改用require引入时就不报错 

import xxx from "xxx"; // 报错

function test(){
  const val = require("xxx") // 不报错
}

问题出在package.json文件中 type这个属性

"type":"module" // 项目中的 .js 文件将默认被视为 ESMAScript 模块 (ESM/ES6)。
//未定义type 项目中的 .js 文件将默认被视为 CommonJS 模块 (CJS)。

ECMAScript与CommonJS的区别

 ESMCJS
后缀.mjs.cjs
加载方式异步加载 编译时解析同步加载 运行时动态计算
语法import导入 export导出require导入 module.exports/exports导出
浏览器支持原生支持<script type="module">难以静态分析
优势可延迟加载 await improt("xx") / import("xx").then动态灵活 可通过js脚本动态加载

如果项目中既有.mjs文件又有.cjs文件 解决报错方法:

1、使用对应的导入导出方法 mjs文件使用import导入、export导出 cjs文件使用require导入 exports导出;

2、根据项目配置是否有 "type":"module" 去修改文件后缀;

延迟导入资源  昨天面试被问到了 没答出来 今天特意来学习..

相关文章:

  • xsync集群分发脚本开发指南
  • 使用AI一步一步实现若依前端(9)
  • 游戏引擎学习第150天
  • 洗鞋小程序(源码+文档+讲解+演示)
  • Spring(4)——响应相关
  • 如何测试 item_get_video 小红书接口返回数据的详细说明
  • 【统计至简】【古典概率模型】联合概率、边缘概率、条件概率、全概率
  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-5.4.2用户画像聚合(Terms Aggregation + Cardinality)
  • SpringCloud——环境搭建
  • html css网页制作成品——糖果屋网页设计(4页)附源码
  • Java中数据库索引选择B+树而非红黑树的详细解析
  • 【前端拓展】Canvas性能革命!WebGPU + WebAssembly混合渲染方案深度解析
  • 【MySQL】增删改查进阶
  • 学习C2CRS Ⅲ (Response Generation Module)
  • 【编程向导】-JavaScript-基础语法-类型检测
  • 软考高级信息系统项目管理师笔记-第23章组织通用管理
  • redis趣味解读
  • SpringMVC工作原理
  • Python :Pandas
  • harmonyOS(鸿蒙)— 网络权限(解决app网络资源无法加载,图片无法显示)
  • 深圳广告策划公司排名/seo是什么意思电商
  • php能干嘛 wordpress/自动app优化最新版
  • 美做天然居家居网站/公司网站怎么弄
  • 网站建站代码/电商关键词工具
  • 网站后台管理员做链接/新闻平台发布
  • 如何做1个手机网站/网页优化seo公司