文档章节

npm包管理

_
 _Rui_
发布于 2017/08/06 22:17
字数 491
阅读 3
收藏 0

概述

nodejs中支持引入的是.js .json .node文件

引用包

require(模块名)引入核心模块,直接写模块的名称引入

将模块定义成一个类

如果需要将模块定义成一个类,则需要将使用modules.export的方式进行导出。

var _name;//原型对象的私有变量。在父模块中式没有办法直接引用的
var foo = function (name,age) {
    _name = name;//原型对象上的私有字段,不能直接访问
    this.age=age;//通过new生成的新对象的字段
};
foo.prototype.getName = function () {
    return _name;
};
foo.prototype.setName = function (name) {
    _name = name;
};
foo.staticName="static ming"; //静态变量
foo.staticFunction=function(){// 静态函数
    return "static function";
};
module.exports = foo;//如果需要定义成一个类时必须使用这种形式

引入node_modules中的模块

使用require("bar")去引用非核心模块中的模块,nodejs会自动去node_module中去找相应的模块,如果在本级目录node_module中没有找到会依次到父级目录的node_module中找,直至全局node_modules。

输入图片说明

如果将模块打包成一个文件夹放在node_module中。则默认将index.js作为入口函数。当然可以通过配置文件夹中package.json文件的方式来指定入口(如下图的main)

目录结构

包结构

  • bin:存放二进制文件
  • lib:存放js文件
  • doc:存放使用文档
  • test:单元测试文件
  • package.json:模块的表述信息

module对象

  • module.id:当前模块的绝对路径,根模块是"."
  • module.filename: 当前模块文件的文件绝对路径
  • module.loaded:模块是否加载完毕
  • module.parent:当前模块的父模块信息
  • module.children:当前模块的子模块信息

总结

  • 在一个项目中不光需要在模块中通过require的方式来引入依赖的模块。还需要确保要使用的模块能找得到(无论是在当前目录的node_modules中还是在父级的node_module中),因此需要package.json进行描述,然后通过npm安装

© 著作权归作者所有

上一篇: js中的封装
下一篇: webstorm快捷键
_
粉丝 3
博文 21
码字总数 7455
作品 0
成都
私信 提问
Node.js 包管理工具 - npm

npm 是 Node.js 的包管理工具,用来安装各种 Node.js 的扩展。 npm 是 JavaScript 的包管理工具,也是世界上最大的软件注册表。有超过 60 万个 JavaScript 代码包可供下载,每周下降约 30 亿...

匿名
2011/03/15
19.9K
7
npm 宣布协作工具 Orgs 免费,可不限量管理公有包

npm 开发团队发文宣布,为了更好的帮助团队共享代码并进行权限管理,所有使用 npm 开源包管理工具的开发者,均可以免费使用协作工具 npm Orgs,可以不限协作者、不限数量的管理 public packa...

王练
2017/03/26
1K
2
node+bower+gulp+webpack初见

node node模块管理是通过NPM(即 Node Package Manage,是 NodeJS 模块管理工具)来处理各模块之间的依赖。NPM按树状结构来管理的,支持某模块的不同版本。 [前提是本机已安装node、git环境]...

ifnotme
2016/08/03
144
0
基于 npm 的操作系统--Node OS

Node OS 是一个完全基于 npm 的操作系统,基于 Linux 内核构建,使用 Node.js 作为运行环境,使用 npm 进行包管理。开源! 目前该系统尚未发布任何文件。

小编辑
2014/09/11
920
0
Node.js模块与npm包管理

一、Node.js模块对象的属性 在Node.js模块内部,模块对象具有以下的属性: module.id:属性值是当前模块的id,在默认情况下,主模块的ID属性值是“.”,其他模块的ID属性值为该模块文件的绝对...

同Young不同样
2018/08/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android双向绑定原理简述

Android双向绑定原理简述 双向绑定涉及两个部分,即将业务状态的变化传递给UI,以及将用户输入信息传递给业务模型。 首先我们来看业务状态是如何传递给UI的。开启dataBinding后,编译器为布局...

tommwq
今天
2
0
Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
今天
6
0
CentOS 的基本使用

1. 使用 sudo 命令, 可以以 root 身份执行命令, 必须要在 /etc/sudoers 中定义普通用户 2. 设置 阿里云 yum 镜像, 参考 https://opsx.alibaba.com/mirror # 备份mv /etc/yum.repos.d/CentO...

北漂的我
昨天
3
0
Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部