一、普通加载

<script src="./abc.js"></script>

二、内嵌

<script> JavaScript 代码 </script>

三、预加载 (用了es6模块就不需要预加载了,es6模块是异步加载的)

<!--head标签中-->
<link rel="preload" href="main.js" as="script" />
<!--body标签中-->
<script src="main.js" defer></script>

模块引入

  1. es6模块

  模块的思想可以概括为:把代码拆开,再把他们连接起来,如何处理模块之间的依赖是模块系统的核心,依赖模块的必须是模块,也就是不能在普通script标签中引入模块:

  <script type="module" src="main.js"></script>

  嵌入的模块定义代码不能使用 import 加载到其他模块。只有通过外部文件加载的模块才可以使用 import 加载。因此,嵌入模块只适合作为入口模块。

  最基础的 import 和 export 基本所有环境都已经支持了(包括nodejs)

   import 引入的文件只会执行一次,可能会产生副作用请注意

  1. AMD 模块:就是 layui 用的那个,require 之后要回调
  2. CommonJS:模块 node 用的那个,直接 const xx = require('')
  3. CMD 模块:用 define 没见有人用过

parcel对module的支持不完善

首先不支持嵌入代码,必须用 src 属性引入

另外,会报错,因为module会默认static模式,不能隐式声明,而parcel的代码依赖这一点,所以需要在模块引入之前先声明:

var parcelRequire;

参见:https://www.cnblogs.com/dou-fu-gan/p/17077594.html

parcel官方github也有issue,原谅博主太懒(截至2023/2/2仍不支持)

参考链接

JavaScript 高级程序设计第四版(不能点,别点了)

一文彻底搞懂JS前端5大模块化规范及其区别 cnblog

JavaScript 模块

最新文章

  1. Hibernate多对多双向关联的配置
  2. iOS检查App新版本并更新新版本
  3. B树(B-Tree)的由来、数据结构、基本操作以及数据库索引的应用
  4. 在生产环境记录http请求参数
  5. STL--集和多集(set/multiset)
  6. java heep space错误解决办法
  7. 开源的rtsp实现
  8. JNI之有必要的优化设计
  9. Java中BigDecimal的8种舍入模式是怎样的
  10. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?
  11. 如何在spring中获取request对象
  12. POJ 2631 Roads in the North(树的直径)
  13. Java开发笔记(七十五)异常的处理:扔出与捕捉
  14. form表单中新增button按钮,点击按钮表单会进行提交
  15. CSS之三个模型 盒子模型 轮廓模型 内外边距
  16. XV Open Cup named after E.V. Pankratiev. GP of Central Europe (AMPPZ-2014)--B.Petrol
  17. kubernetes ceph-rbd挂载步骤 类型storageClass
  18. 如何在基于Bytom开发过程中使用Bigchaindb
  19. 用 Prettier 统一团队的代码风格~
  20. CodeForces 430A Points and Segments (easy)(构造)题解

热门文章

  1. OpenMP 教程(一) 深入人剖析 OpenMP reduction 子句
  2. js高级之函数高级部分
  3. C语言算法入门
  4. Crond服务+Shell实现秒级任务
  5. 【云原生 · Kubernetes】Kubernetes简介及基本组件
  6. 重学c#系列——枚举[二十三]
  7. vue 3.0 常用api 的简介
  8. vue-element Form表单验证没错却一直提示错误
  9. layui文件上传
  10. Dijkstra 算法说明与实现