Node.js(二)——模块与包管理工具

http,process等等这些都是模块

一、Node.js的模块与Commonjs规范

1.js的天生缺陷——缺少模块化管理机制

·表现——JS中容易出现变量被覆盖,方法被替代的情况(既被污染)。特别是存在依赖关系时,容易出现错误。这是因为JS缺少模块管理机制,来隔离实现各种不同功能的JS判断,避免它们相互污染。

·解决——经常采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码,保证代码安全运行。jQuery中有许多变量和方法,但是无法直接访问,必须通过jQuery,$调用 各个方法。

2.Commonjs规范

不同于jQuery,Commonjs是一套规范,约定了js如何组织,如何编写,包括包,二进制,套接字,单元测试等等。大部分标准在拟定和讨论之中,首先把执行不同任务的代码块和代码文件看为独立的模块,每一个模块都是一个单独的作用域,但不是孤立的,可能存在依赖关系。每个模块分为三个部分,定义、标识和引用。这套规范与现实产品如node.js相互影响,良性循环。

3.NodeJs的模块管理机制

基于commonjs实现了模块管理系统。node中每一个js文件都是一个独立的模块,在其内部不需要有命名空间,不需要担心变量的污染和方法定义时的隔离。同时模块之间可以组合形成更强大的模块或功能包。npm即是用来管理各种功能包的。

二、模块的分类

在NodeJs中文件和模块是一一对应的

文件分为几种不同的类型,大概分为核心模块、本地模块和通过npm安装的第三方模块

根据模块的类型有几种引用模块的方式

1.可以通过文件路径来引用模块

2.通过模块名来引用

如果用模块名来引用非核心模块的话,Node最终会把模块名映射到

对应的模块文件的路径,而那些包含核心函数的核心模块会在Node启动时预先加载

三、简单的Nodejs模块

创建模块:一个入口的js文件,里面加入一些特定的功能

导出模块:把这个功能和这个文件也就是这个模块名建立关系

加载模块:在其他的文件里引入并加载这个模块,在NodeJs使用require来完成这个工作

使用模块:直接调用模块中命名好的方法来做一些特定的逻辑处理,完成某种功能

时间: 2024-10-06 00:36:06

Node.js(二)——模块与包管理工具的相关文章

模块与包管理工具

@模块与包管理工具 js的天生缺陷--缺少模块化管理机制 ·表现>> JS中容易出现变量被覆盖,方法被替代的情况(既被污染).特别是存在依赖关系时,容易出现错误. 这是因为JS缺少模块管理机制,来隔离实现各种不同功能的JS判断,避免它们相互污染. ·解决>> 经常采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码, 保证代码安全运行.jQuery中有许多变量和方法,但是无法直接访问,必须通过jQuery,$调用 各个方法. [Commonjs规

(三)、node.js的模块和包

我们做东西不可能把所有的功能都放在一起,那样会相互影响,我们需要把他们分门别类, 让他们各自执行各自的功能,这就是包或者模块,包和模块这两个概念经常地会用,其实他俩讲的是一个东西 而在node.js中一个文件就是一个包 下面我们就来具体的讲解一下: Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象.让我们以一个例子来了解模块. 创建一个module.js

nodejs-2:模块与包管理工具

多人协作时,大量的js文件批量的引入到页面中,会出现变量被覆 盖掉方法被重写掉的情况,特别是存在一些依赖关系的时候,还容 易导致页面出错,这是因为js天生就缺少一种模块的管理机制来 隔离实现功能的js片段,来避免它们的相互污染,为此我们经常采 用命名空间的方式,把变量和函数限制在某个特定的范围之内,人 肉的约定一套命名规范从而保证代码的规范执行,比如jquery里面其实有许多变量和方法

NPM 包管理工具详解,使用教程

NPM 包管理工具 1.1 定义:什么是 NPM NPM 全称 Node Package Manager,它是 JavaScript 的包管理工具, 并且是 Node.js 平台的默认包管理工具.通过NPM 可以安装.共享.分发代码,管理项目依赖关系. 可从NPM服务器下载别人编写的第三方包到本地使用. 可从NPM服务器下载并安装别人编写的命令行程序到本地使用. 可将自己编写的包或命令行程序上传到NPM服务器供别人使用. 其实我们可以把 NPM 理解为前端的 Maven.我们通过 npm 可以很

Node.js之模块机制

文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 其实在JavaScript的发展中,它主要是在浏览器前端中被应用广泛.因为在实际应用中, JavaScript的表现能力主要取决于宿主环境的API支持程度, 在最早期,只有对BOM, DOM的支持,随着HTML5的出现,在浏览器中出现了更多,更强大的API供JavaScript调用,但是这些都是发生在前端,后端JavaScript的规范却远远落后.Java有class文件,Phthon有import机制,P

[转载]Python 包管理工具解惑

原文链接:http://zengrong.net/post/2169.htm Python 包管理工具解惑 python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: 这几个包管理工具有什么不同? distutils setuptools distribute disutils2 distlib pip 什么时候该用pip,什么时候该用 setup.py ,它们有关系么? easy_install.ez_setup

Python 包管理工具解惑

Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到相当疑惑(嗯,是困惑).主要表现在下面几个方面: 这几个包管理工具有什么不同? distutils setuptools distribute disutils2 distlib pip 什么时候该用pip,什么时候该用 setup.py ,它们有关系么? easy_install.ez_setup

python版本管理工具pyenv和包管理工具pipenv

一.pyenv版本管理工具 pyenv是一个python版本管理工具,可以实现轻松切换多个python版本 它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理virtualenv虚拟环境,可以自己创建virtualenv或者通过pyenv-virtualenv来自动化创建虚拟环境 pyenv通过PATH环境变量来匹配切换python或者pip的工作目录,pyenv通过读取工作环境来指定使用哪个python版本,如在当前会话中查找PYENV_VERSION环

python 包管理工具 pip 的配置

近几年来,python的包管理系统pip 越来越完善, 尤其是对于 windows场景下,pip大大改善了python的易用性. https://www.cnblogs.com/yvivid/p/pip_setup.html 一.python 包管理工具 pip 安装 从 python 3.4开始就开始 内嵌 pip,但整合还不是很好. 如果 python版本还没有包含 pip,可通过下面地址 https://pip.pypa.io/en/stable/installing/ 下载并运行 get