Node.js——require加载规则

判断require中的标识参数:

非路径的标识参数:也被称为是核心模块,已经被编译到二进制文件中

带有路径标识参数:自定义模块,一般都是相对定位

第三方模块:表现形式与核心模块一样,但是实际不一样,它会首先去找当前文件夹下的node_modules下的express(包名)文件夹,再去找这个文件夹下package.json文件,再去找文件中的main指向的模块。那么。如果缺少package.json文件或者main执行为空,那么就会默认选择index.js。如果以上条件还是不成立,就会去找上一级的node_modules模块,直到磁盘根路径。

原文地址:https://www.cnblogs.com/wuqiuxue/p/9180691.html

时间: 2024-10-10 00:13:07

Node.js——require加载规则的相关文章

Angular Material串串学客户端开发 2 - Node.js模块加载机制Require()

题外话解一下博客标题,因为第一篇文章评论中,有人质疑离题很远,说了半天和Angular Material没有半毛关系.其实我的的中心在后半句<串串学客户端开发>. require() 不要把这里的Require()和RequireJS混为一谈.不过有意思的是,Typescript的模块定义,甚至同时支持这两种模块机制. 导入和使用外部模块,只是简单的一句require(),看看angular/material/docs下的编译文件gulpfile.js的代码片段.对模块导入和使用有个直观的感觉

node.js 模块加载原理

来自BYVoid的<Node.js+开发指南> 2015-9-14 11:23:30 有时候我们只是想把一个对象封装到模块中,例如: //singleobject.js function Hello() { var name; this.setName = function (thyName) { name = thyName; }; this.sayHello = function () { console.log('Hello ' + name); }; }; exports.Hello

[转]Browserify —— 利用Node.js实现JS模块化加载

原文地址:http://www.oschina.net/p/browserify Browserify 可以让你使用类似于 node 的 require() 的方式来组织浏览器端的 Javascript 代码,通过预编译让前端 Javascript 可以直接使用 Node NPM 安装的一些库. 安装: npm install -g browserify    示例 这是 main.js 的内容,像普通的 nodejs 程序那样使用 require() 加载库和文件: var foo = req

nodejs js模块加载

nodejs的非核心模块(core module)加载主要使用的就是module.js. 项目主模块(index.js/main.js等)加载使用的应该是module.js中的runMain(),其他js模块加载流程基本上是: 1,获取js文件信息: 2,new Module(): 3,读取js文件内容,封装到一个function中,同时注入module本身,module.exports,包装过的require函数等变量: 4,在某个上下文环境中执行这个封装后的function: 5,返回mod

再唠叨JS模块化加载之CommonJS、AMD、CMD、ES6

Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. Javascript社区做了很多努力,在现有的运行环境中,实现"模块"的效果. CommonJS CommonJS定义的模块分为:  模块引用(require)    模块输出(exports)       模块标识(module) CommonJS Modules有1.0.1.1.1.1.1三个版本: Node.js.SproutCore实现了 Mo

现代浏览器JS异步加载方案

好,不说废话,要凌晨了我快点写完,关于JS加载阻塞之类的不做科普,本文也不讨论IE9以下的浏览器. headjs:"异步.并行加载并按你的顺序执行",这个是最符合广大码农需求的,只是它越来越臃肿,连CSS Respone什么的都加进去了,没必要那么复杂 Loadjs:今天刚刚出现在OSC首页本人疯狂测试后发现,如果需要并行加载就是乱序的(哪个JS先下载完就先执行谁),如果要顺序下载就不能并发,经测试是下载一个执行一个,每个JS文件之间有10ms的空隙(JS下载和加载时所有渲染操作都要暂

js模块化/js模块加载器/js模块打包器

之前对这几个概念一直记得很模糊,也无法用自己的语言表达出来,今天看了大神的文章,尝试根据自己的理解总结一下,算是一篇读后感. 大神的文章:http://www.css88.com/archives/7628(大神的文章写的很详细,建议先看完大神的文章) 一.js模块化 什么是js模块化,我们从历史说起. 1.一开始我们怎么写脚本?就是在html文件中用<script></script>写代码 这种方式的缺点:代码复用靠复制,基本是全局变量. 2.后来我们用js文件写代码,用<

也说JS脚本加载控制

问题背景 前端采用的 iframe + html 做后台管理系统.现在js.jquery插件非常多,每次页面都是引用就类似这样: <script src="../Scripts/jquery-1.7.1.js"></script> <script src="../Scripts/uploadify/jquery.uploadify.js"></script> <script src="../Script

JS动态加载JS与CSS文件

JS动态加载JS与CSS文件 DEMO 一 HTML页面   jsforjscss.html 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"&