美文网首页
Node之模块与npm包管理器

Node之模块与npm包管理器

作者: 27亿光年中的小小尘埃 | 来源:发表于2019-12-25 23:53 被阅读0次

核心模块与文件模块

在Node.js中,以模块为单位划分所有功能。核心模块为Node内置模块,还有一些第三方的模块,模块是以js文件或者文件夹的形式存在于node中,每一个模块都是一个js的脚本文件

如何加载模块

加载模块只需要用

require('模块名')

在node中,可以自己编写或者从网上下载以下几种模块文件

  • 后缀名为.js的JavaScript脚本文件。
  • 后缀名为.json的JSON文本文件。
  • 后缀名为.node的经过编译后的二进制模块文件。

在加载这些模块文件时,需要指定该文件的完整路径及文件名。在指定路径时,可以使用“./”前缀(代表当前目录)来指定相对路径,也可以用“/”前缀来指定绝对路径

从模块外部访问模块内的成员

在一个模块文件中定义的本地(即非函数内定义的)变量、函数或对象只在该模块内有效,当你需要从模块外部引用这些变量、函数或对象时,需要在该模块文件内使用exports对象

示例:

var myMsg="hello";
var funcname=function() {
    return 'I'm funcname1 function.';
};
exports.msg=myMsg;
exports.funcname=funcname;

当从外部访问模块时使用require导入即可

node中模块加载的顺序

  • /home/ry/projects/node_modules/
  • /home/ry/node_modules/
  • /home/node_modules/
  • /node_modules/

模块对象的属性

  • module.id:属性值为当前模块的ID。在默认情况下,主模块的ID属性值为“.”,其他模块的ID属性值为该模块文件的绝对路径。在模块文件中可以修改当前模块的ID属性值。
  • module.filename:属性值为当前模块文件的文件名。
  • module.loaded:属性值为布尔值,当属性值为false时表示模块尚未加载完毕,属性值为true时表示模块加载完毕。
  • module.parent:属性值为当前模块的父模块对象,即调用当前模块的模块对象。
  • module.children:属性值为一个数组,其中存放了当前模块的所有子模块对象,即当前模块中已加载的所有模块对象。

Node中的包

在Node.js中,可以通过包来对一组具有相互依赖关系的模块进行统一管理。通过包的使用,我们可以将某个独立的功能封装起来。一个包事实上是一个目录,其中包含了用于对包进行描述的JSON格式的package.json文件。在一个包中,通常包含如下所示的一些内容:

  • 在包的根目录中存放package.json文件。
  • 在bin子目录中存放二进制文件。
  • 在lib子目录中存放JavaScript文件。
  • 在doc子目录存放对包或包的使用方法进行说明的文档文件。
  • 在test子目录中存放一些对包进行单元测试用的文件。

在一个package.json文件中,一个package.json文件中通常应该包含的字段及其作用如下所示:

  • name:包名。包名是唯一的,由小写字母、数字和下划线组成,不能含空格。
  • preferglobal:是否支持全局安装。字段值为true时支持全局安装,字段值为false时不支持全局安装。
  • description:包说明。对包进行简要描述
  • version:版本号。
  • author:作者信息数组。每个数组元素中可包含name(作者姓名)字段、email(作者E-mail)字段、web(作者网址)字段。
  • maintainers:包维护者信息数组。每个数组元素中可包含name(包维护者姓名)字段、email(包维护者E-mail)字段、web(包维护者网址)字段。
  • bugs:bug的提交地址,可以是网址或电邮地址。
  • licenses,许可证数组。每个元素要包含type(许可证名称)和url(链接到许可证文本的地址)字段。
  • repository:仓库托管地址数组。每个元素要包含type(仓库的类型,如Git)、url(仓库地址)和path(相对于仓库的路径,可选)字段。
  • keywords,关键字数组,通常用于搜索。
  • dependencies,本包所依赖的包。是一个关联数组,由包名和版本号组成。

npm包管理工具

在Node.js中,提供了一个npm(NodePackageManager)包管理工具。该管理工具可用于从第三方网站上下载Node.js包。在Node.js的官方包网站(网址为https://npmjs.org/)上,我们可以发现许多可通过npm包管理工具进行下载的Node.js模块。

搜索并查看包的信息。

npm search <packName>

查看官方包仓库中forever包所用package.json文件中的信息。

npm view <packName>

下载包

npm install <packName> -g(全局并且加入环境变量)

查看全局包安装路径

npm root -g

修改全局包的安装路径

npmconfig set prefix "d:\node"

查看当前目录下所安装的所有包

npm list -g(全局下的)

卸载包

npm uninstall <packName> -g(全局并且加入环境变量)

升级包

npm update -g(全局下的)

相关文章

  • npm

    一、npm与node.js的关系? npm是node的包管理器,npm中含有大约600000个包,只要安装了nod...

  • RN精进笔记(十三)npm命令和机制

    [toc] NPM 模块安装机制简介 npm是Node的模块管理器,功能很强大。它是Node获得成功的原因之一。正...

  • npm cnpm的区别

    npm ( node package manager ) 是nodejs 的包管理器,用于node插件管理 ( 包...

  • npm安装依赖包

    mac下安装npm npm查看版本 npm安装node模块 npm本地安装lodash 安装包放在 ./node_...

  • npm的一些命令语句

    1、npm install moduleNames:安装Node模块npm install -g将包...

  • 不会发布npm包?进来看看?

    前言 npm(Node Package Manager),一个Node的包管理器,平时我们常用的公共模块(插件)或...

  • 快速开发一个vue插件并发布到npm上

    1、npm是什么? npm 是Node 的模块管理器,功能极其强大。 它是Node 获得成功的重要原因之一。 正...

  • npm

    npm是什么 Node Packcge Manager,node包管理器,主要功能是管理node包的安装,卸载,更...

  • 2_node NPM的使用

    [TOC] NPM介绍 NPM(node pacakage manager) node包管理器NPM是随同Node...

  • 手把手教你创建你的第一个npm包

    1.npm是什么? npm 是Node 的模块管理器,功能极其强大。 它是Node 获得成功的重要原因之一。 正因...

网友评论

      本文标题:Node之模块与npm包管理器

      本文链接:https://www.haomeiwen.com/subject/ysnhoctx.html