首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS模块加载框架 SeaJS

SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制,兼容所有主流浏览器 SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载...,让开发可以专注于代码本身的逻辑 上手示例 html中加载初始化模块init.js,init 中调用 module1 模块,同时 module1 模块调用 module2 模块 ?...,他有三个参数: 1)require 模块加载函数,用于记载依赖模块 2)exports 接口点,将数据或方法定义在其上则将其暴露给外部调用 3)module 模块的元数据,存储了模块的元信息(module.id...模块的ID、module.dependencies 此模块依赖的所有模块的ID列表、module.exports 与exports指向同一个对象) 模块的寻址 (1)绝对地址——给出js文件的绝对路径...require("http://example/js/a"); (2)相对地址——用载入函数所在js文件的相对地址寻找模块 例如有 js/a.jsjs/m/b.js 在b.js中调用上级级目录下的

6K50

Node.js模块加载机制

7、Node.js模块加载机制 (1)模块查找规则-当模块拥有路径但没有后缀时 image.png require方法根据模块路径查找模块,如果是完整路径,直接引入模块。...如果模块后缀省略,先找同名JS文件再找同名JS文件夹 如果找到了同名文件夹,找文件夹中的index.js 如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找main选项中的入口文件...如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到 (2)模块查找规则-当模块没有路径且没有后缀时 Node.js会假设它是系统模块 Node.js会去node_modules文件夹中...首先看是否有该名字的JS文件 再看是否有该名字的文件夹 如果是文件夹看里面是否有index.js 如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件 否则找不到报错...本机域名:localhost 本地IP :127.0.0.1 (2)创建web服务器 // 引用系统模块 const http = require('http'); // 创建web服务器

1.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

【Node.js模块加载机制

作者主页: 作者主页查看更多前端教学 专栏分享:css重难点教学 Node.js教学 从头开始学习 目录 模块加载机制         优先从缓存中加载          内置模块加载机制...内置模块加载机制 内置模块是由Node.js官方提供的模块,内置模块加载优先级最高。 意思是说  如果自定义模块,与内置模块同名,则优先会加载内置模块。        ...按照准确标记的扩展名 补全js扩展名进行加载 补全json扩展名进行加载 补全node扩展名进行加载 加载失败,终端报错           第三方模块加载机制 如果传递给require()的模块标识符不是一个内置模块.../开头,则Node.js会从当前父级模块开始查找子级node_modules文件夹,然后从里面查找导入的模块名称。...package.json文件,或者main属性不存在,文件不存在的话,则会加载目录下的index.js文件 如果以上两部都失败了,则会报错 模块缺失

1.1K20

Node.js模块加载机制

1.模块查找规则-当模块拥有路径但没有后缀时 require(' ./find.js') ; require(' ./find') ; require方法根据模块路径查找模块,如果是完整路径。...如果模块后缀省略,先找同名JS文件再找同名JS文件夹 如果找到了同名文件夹,找文件夹中的index.js 如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找...main选项中的入口文件 如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到 2.模块查找规则-当模块没有路径且没有后缀时 require(' find') ; Node.js...会假设它是 系统模块 Node.js会去node_ modules文件夹中 首先看是否有该名字的JS文件 再看是否有该名字的文件夹 如果是文件夹看里面是否有indexjs...如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件 否则找不到报错

1.3K30

Node.js模块加载机制

模块查找规则-当模块拥有路径但没有后缀时 require(' ./find.js') ; require(' ./find') ; require方法根据模块路径查找模块,如果是完整路径。...直接引入模块。...如果模块后缀省略,先找同名JS文件再找同名JS文件夹 如果找到了同名文件夹,找文件夹中的index.js 如果文件夹中没有index.js就会去当前文件夹中的package.json文件中查找...模块查找规则-当模块没有路径且没有后缀时 require(' find') ; Node.js会假设它是 系统模块 Node.js会去node_ modules文件夹中 首先看是否有该名字的...JS文件 再看是否有该名字的文件夹 如果是文件夹看里面是否有indexjs 如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件 否则找不到报错

1.8K20

Android App Bundle:动态功能模块

本文并不是介绍Android App Bundle,因为它不是新的事物,相关的文章也有很多了,本文重点介绍的是Android App Bundle中“动态功能模块”的实际应用。...Android App Bundle Android App Bundle是基于google play的分发技术,可以有效的减少apk的大小。...除了这些资源,Android App Bundle还支持动态功能模块(Dynamic Feature Module),这样如果用户不需要这部分功能,则不安装这个模块,这样就更加高度优化了下载和安装。...当您构建 app bundle 时,Gradle 会使用子项目名称的最后一个元素在功能模块的清单中注入 属性。 指定该模块的 package name。...总结 Android App Bundle可以有效的减少安装包体积,而如果利用好动态功能模块(Dynamic Feature Module)更是可以极大的压缩安装包大小,这样可以大幅减少用户下载安装的等待时间

1.9K20

Android 大型工程 App Bundle 模块化实践

企业微信基于 App Bundle 采用低入侵、业务代码基本零重构的技术方案,实现了全业务模块采用动态模块(dynamic feature)开发。最后展示并行编译方案,进一步加速持续集成。...它的核心是 Google Play 应用分发渠道和 Android Split APKs 运行时分包加载机制,以更小的应用提供优质的使用体验,从而提升安装成功率并减少卸载量。...模块化开发解决什么? Android App Bundle 描述非常恰当: 提升工程速度 将应用功能作为独立模块进行设计、构建、调试和测试,并在准备就绪后将其添加到主应用中。...、分包动态加载,从模块化设计改进和实现支持,提升并行、缓存效率,降低模块依赖数、减少并发修改影响。...模块依赖冲突 Android App Bundle 会在 base 检查依赖打包是否冲突: ? 通过编译时预检查,避免了运行时加载重复 .dex,确保逻辑一致性。

4.3K31

JS框架设计之加载器所在路径的探知一模块加载系统

1、要加载一个模块,我们需要一个URL作为加载地址,一个script作为加载媒介,但用户在require是都用ID,我们需要一个将ID转换为URL的方法,思路很简单,强加个约定,URL的合成规则是为:...basepath+模块ID+".js" 2、当浏览器自上而下分析DOM,在浏览器解析我们的Javascript文件时(指的是加载器文件)时,他就肯定是DOM树最后一个加入的script标签,因此有下面的方法...node=nodes[nodes.length-1];//拿到最后一个加载的script标签对象,也就是加载器 var src=document.querySelector?.../加载器/zcLoadJs.js">'); document.write('<script src="http://common.cnblogs.com/script/jquery.<em>js</em>...的路径 zcLoadJs为我的<em>加载</em>器,里面执行getBasePath()方法,预期得到zcLoadJs.<em>js</em>的服务器路径,但是在IE678中却返回juqery.<em>js</em>的路径,这个不奇怪,很多的常规方法在IE

1K50

结合源码分析 Node.js 模块加载与运行原理

但是,对于 Node.js 模块化背后的加载与运行原理,我们是否清楚呢。首先抛出以下几个问题: Node.js 中的模块支持哪些文件类型? 核心模块和第三方模块加载运行流程有什么不同?...4.1 核心模块加载原理 核心模块是通过 NativeModule.require 加载的,NativeModule的定义在 bootstrap_node.js中,附上 github 链接: github.com...可以看出,一共支持三种类型的模块加载:.js, .json, .node。其中 .json 类型的文件加载方法是最简单的,直接读取文件内容,然后 JSON.parse 之后返回对象即可。...C/C++ 扩展模块的开发以及应用场景 上文分析了 Node.js 当中各类模块加载流程。...事实上,通过学习 Node.js 模块加载流程,有助于我们更深刻的了解 Node.js 底层的运行原理,而掌握了其中的扩展模块开发,并学会在适当的场景下使用,则能够使得我们开发出的 Node.js 应用性能更高

3.2K10

深入Node.js模块加载机制,手写require函数

实现require其实就是实现整个Node.js模块加载机制,我们再来理一下需要解决的问题: 通过传入的路径名找到对应的文件。...此时, b.js 会尝试去加载 a.js。 为了防止无限的循环,会返回一个 a.js 的 exports 对象的 未完成的副本 给 b.js 模块。...总结 require不是黑魔法,整个Node.js模块加载机制都是JS实现的。...为了解决循环引用,模块加载前就会被加入缓存,下次再加载会直接返回缓存,如果这时候模块还没加载完,你可能拿到未完成的exports。 Node.js实现的这套加载机制叫CommonJS。...本文完整代码已上传GitHub:github.com/dennis-jian… 参考资料 Node.js模块加载源码:github.com/nodejs/node… Node.js模块官方文档:nodejs.cn

1K51

【Google Play】App Bundle 使用详解 ( 应用模块化 )

( 注册邮箱账号 | 创建开发者账号 ) 【Google Play】创建并设置应用 ( 访问权限 | 内容分级 | 受众群体 | 类别及联系方式 | 商品详情 ) 【Google Play】App Bundle...使用详解 ( 简介 | 应用内更新 | 即时更新 | 灵活更新 ) 【Google Play】App Bundle 使用详解 ( 按条件分发 | 国家地区 | SDK 版本 | 设备功能 | 按需分发...| 资源分发 ) 【Google Play】App Bundle 使用详解 ( 应用模块化 ) ---- 文章目录 Google Play 上架完整流程 系列文章目录 一、单个应用模块化 二、Android...Studio 新模块向导 三、博客资源 一、单个应用模块化 ---- 将一个独立的应用 , 分为若干功能模块 , 为不同的模块设置不同的分发策略 ; 应用组成 : 代码 , 资源 , 可绘制资源 ,...将外部的依赖库放在基础模块中 , 所有的模块都可以使用依赖库 ; 二、Android Studio 新模块向导 ---- 在 Android Studio 中的新模块向导中 , 输入模块名 , 包名

89510

前端-结合源码分析 Node.js 模块加载与运行原理

但是,对于 Node.js 模块化背后的加载与运行原理,我们是否清楚呢。首先抛出以下几个问题: 1、Node.js 中的模块支持哪些文件类型? 2、核心模块和第三方模块加载运行流程有什么不同?...4.1 核心模块加载原理 核心模块是通过 NativeModule.require 加载的,NativeModule的定义在 bootstrap_node.js 中,附上 github 链接: https...可以看出,一共支持三种类型的模块加载:.js, .json, .node。其中 .json 类型的文件加载方法是最简单的,直接读取文件内容,然后 JSON.parse 之后返回对象即可。...C/C++ 扩展模块的开发以及应用场景 上文分析了 Node.js 当中各类模块加载流程。...事实上,通过学习 Node.js 模块加载流程,有助于我们更深刻的了解 Node.js 底层的运行原理,而掌握了其中的扩展模块开发,并学会在适当的场景下使用,则能够使得我们开发出的 Node.js 应用性能更高

2.2K20

Node.js学习笔记——模块加载机制及npm指令详解

文章目录 二、模块化 1.模块化的基本概念 2.Node.js 中的模块化 Node.js模块的分类 加载模块 Node.js 中的模块作用域 向外共享模块作用域中的成员 Node.js 中的模块化规范...(用户创建的每个 .js 文件,都是自定义模块) 第三方模块(由第三方开发出来的模块,使用前需要先下载) 加载模块 使用强大的 require()方法,可以加载需要的内置模块、用户自定义模块、第三方模块进行使用.../custom.js') // 自定义模块,需指明路径,可以省略 .js 的后缀名 const moment = require('moment') // 第三方模块 注意,不用.js后缀名也可以加载对应的文件...require() 方法用于加载模块 3.npm与包 Node.js 中的第三方模块又叫做包 不同于 Node.js 中的内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用。...●在使用 require() 导入自定义模块时,如果省略了文件的扩展名,Node.js 会按顺序分别尝试加载以下的文件 ​ 按照确切的文件名进行加载 ​ 补全 .js 扩展名进行加载 ​ 补全 .json

96320

Python 重新加载模块

简述 在进行模块化编程时,经常会遇到这样一种场景: 编写了一个 Python 模块,并用 import my_module 的形式进行导入。...模块仅被导入一次 出于效率原因(导入必须找到文件,将其编译成字节码,并且运行代码),Python shell 在每次会话中,只对每个模块导入一次。...也就是说,模块仅被导入了一次。...重新加载模块 倘若,更改了已经在 Python shell 中导入的模块,然后重新导入该模块,Python 会认为“我已经导入了该模块,不需要再次读取该文件”,所以更改将无效。...对于更复杂的情况,重新加载被编辑的模块也需要重新加载其依赖/导入的模块(因为它们必须作为被编辑模块初始化的一部分进行初始化),所以 IPython 的 autoreload 扩展很有用。

4.2K10

ABP - 模块加载机制

前言 Abp是一个基于模块化开发的应用程序框架,提供了模块化基础的架构和模块加载的引擎。 理解模块 一个模块是对一个功能点的封装,可以独立成为一个包,实现了松耦合的代码组织方式。...模块之间可以引用,并且设置模块的依赖关系,一个模块加载时,会先加载其依赖的模块。...通过DependsOnAttribute可以指定模块依赖的模块,形成一个依赖链,Abp引擎启动时加载模块时,会先加载依赖模块。...ABP框架应用程序启动,模块加载整个过程涉及到了AbpApplicationFactory、AbpApplicationWithExternalServiceProvider、AbpApplicationBase...abp应用程序初始化过程图 以上,就是对Abp应用程序启动和模块加载机制的整理.

19460
领券