初始npmnode
1、npm简介:git
npm全称为Node Packag Manage,是一个基于Node.js的包管理器,也是整个Dode.js最流行、支持的第三方模块最多的包管理器。github
npm的初衷:JavaScript开发人员更统一分享和重用代码算法
npm的使用场景:npm
容许用户获取第三方包并使用。json
容许用户将本身编写的包或者命令行程序进行发布分享。安全
npm版本查询:npm -vdom
npm安装:ssh
1.安装nodejs测试
因为新版的nodejs已经集成了npm,因此可直接经过输入npm -v来测试是否成功安装
2.使用npm命令来升级npm:npm install npm -g
2、npm的工做原理:
1.包和模块
1.什么是包(package)?
包的描述一个文件或者一个目录。一个包的配置一般由如下构成:
一个文件夹包含一个package.json配置文件
包含(含有package.json文件的文件夹)的 Gzip压缩文件。
解析gzip的url
为注册表添加<name>@<version>的url 信息
注意的是即便你历来没有在注册中心发布你的公共包,你可能仍然能够获得不少全部这些package
, 使用npm的好处:
若是你只是计划想写增长一个节点或/。
若是你安装它也但愿在其余地方分红一个tarball后进行包装
Git url的形式:
什么是模块(module)?
模板是经过配置文件中的一个dom节点进行包含一个或多个包。一般通常由包和配置文件以及相关模块程序构成完成一个或多个业务功能操做。
一个模块能够在node . js 程序中装满任何的require()
任何。 如下是全部事物加载模块的例子 :
一个文件夹package.json
文件包含一个main
字段。
一个文件夹index.js
文件。
一个JavaScript文件。
3.npm的包和模块的关系:
通常来讲在js程序中使用require加载它们的模块在节点中进行配置npm包,一个模块不必定是一个包。
例如,一些cli
包, js程序节点中只包含一个可执行的 命令行界面,不提供main
字段。 那么这些包不是模块。
几乎全部npm包(至少,那些节点计划)包含许多模块在他们(由于每一个文件加载require()
是一个模块)。
几乎全部的npm包都关联着多个模块,由于每一个文件都使用require()加载一个模块。
从module加载文件中的上下文node节点。如:var req = require('request')。咱们可能会说,“request
模块赋值给req这个变量”。
4.npm的生态系统:
package.json
文件定义的是包。
node_modules
文件夹是存储模块的地方。便于js查找模块。
例如:
若是建立一个node_modules/foo.js文件,经过var f=require('foo.js')进行加载模块。由于它没有package.json文件因此foo.js不是一个包。
若是没有建立index.js包
或者package.json
文件"main"
字段,即便是在安装node_modules
,由于它没有require()因此它不是一个模块
。