创建包
创建包
Node.js 的包是一个目录,包含一个 JSON 格式的包说明文件 package.json。严格符
合 CommonJS 规范的包应该具备以下特征:
package.json 必须在包的顶层目录下;
二进制文件应该在 bin 目录下;
JavaScript 代码应该在 lib 目录下;
文档应该在 doc 目录下;
单元测试应该在 test 目录下。
Node.js 对包的要求并没有这么严格,只要顶层目录下有 package.json,并符合一些规范
即可。当然为了提高兼容性,我们还是建议你在制作包的时候,严格遵守 CommonJS 规范。
模块与文件是一一对应的。文件不仅可以是 JavaScript 代码或二进制代码,还可以是一
个文件夹。最简单的包,就是一个作为文件夹的模块。
目录机构
interface.js中代码
1 /** 2 * Created by Administrator on 2016/8/4. 3 */ 4 function Person(){ 5 var name; 6 this.setName = function(username){ 7 name = username; 8 }; 9 this.sayName = function(){ 10 console.log("what's your name ? \n" + name); 11 }; 12 } 13 //覆盖exports 14 //exports 本身仅仅是一个普通的空对象,即 {},它专门用来声明接口,本质上是通过它为模块闭包①的内部建立了一个有限的访问接口 15 module.exports = Person;
app.js中code
1 /* 2 Node.js 在调用某个包时,会首先检查包中 package.json 文件的 main 字段,将其作为 3 包的接口模块,如果 package.json 或 main 字段不存在,会尝试寻找 index.js 或 index.node 作 4 为包的接口。 5 */ 6 var onePackpage = require("./onePackpage"); 7 var one = new onePackpage(); 8 one.setName("test"); 9 one.sayName();
package.json
{ "name": "onePackpage", "main": "./lib/interface.js", "version": "0.1.0", "keywords": [ "package", "example" ], "maintainers": [ { "name": "钟离野", "email": "1924458755@qq.com" } ] }
Node.js包管理器,即npm是 Node.js 官方提供的包管理工具
①,它已经成了 Node.js 包的
标准发布平台,用于 Node.js 包的发布、传播、依赖控制。npm 提供了命令行工具,使你可
以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。
【
npm在默认情况下会从http://npmjs.org搜索或下载包, 将包安装到当前目录的node_modules
子目录下。
】
本地模式和全局模式
获取一个包【本地模式】
npm [install/i] [package_name]
npm [install/i] -g [package_name]
本地模式和全局模式的特点
本地模式
可通过 require 使用
不注册PATH
全局模式
不通过 require 使用
要注册PATH
用法:当我们要把某个包作为工程运行时的一部分时,通过本地模式获取,如果要
在命令行下使用,则使用全局模式安装。
在命令行下执行 node debug debug.js,将会启动调试工具: