初始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()因此它不是一個模塊
。