包
- 通過使用npm來進(jìn)行基本的包管理
初始化管理
- 對(duì)于每個(gè)項(xiàng)目來說都會(huì)有自己的依賴文件這時(shí)候就需要從開始就通過npm初始化
npm init 或者npm init -y
通過初始化會(huì)創(chuàng)建出package.json文件 (不要有中文)
package.json
- name 項(xiàng)目名稱
- version 版本號(hào) 1.. 表示有重大更新 .1. 局部更新 ..1 (1.1.*) bug修補(bǔ)
- description 項(xiàng)目的說明
- entry point 項(xiàng)目的入口文件
- test command 測試
- git repository git網(wǎng)站(git bub上面找到)
- keywords 關(guān)鍵字
- author 作者
- license 協(xié)議(MIT 既可以商用也可以私用)
- scripts 用來保存常用命令 (npm run scripts中的key)
- dependencies
- 一個(gè)完整的版本號(hào)組表示為: [主要版本號(hào),次要版本號(hào)凰兑,補(bǔ)丁版本號(hào)]
- > +版本號(hào) 下載大于某個(gè)版本號(hào),npm會(huì)下最新版
- < +版本號(hào) 下載小于某個(gè)版本號(hào)蝗敢,npm會(huì)下小于這個(gè)版本號(hào)最新版
- <= 小于等于 一定會(huì)下你寫的這個(gè)版本,除非沒有你寫的這個(gè)版本
- >= 大于等于 下載最新版
- *、" "、X 任意 npm會(huì)給你下最新版
- ^ +版本號(hào) 不躍遷版本下載雏逾,^2.1.0 npm會(huì)下載大版本不變,去下載2.x.x版本里的最近版
- ~ +版本號(hào) 會(huì)去下約等于這個(gè)版本的最新版郑临,在大版本不變的情
- 參考文獻(xiàn) package.json全字段解析
- 參考2
- 官方文檔
下載包
- 本地下載
npm install jquery
或者npm i jquery
-
npm install jquery --save
或npm install -S jquery
或npm i -S jquery
本地下載并保存到package.json中的dependencies -
npm install jquery --save-dev
或npm install -D jquery
或npm i -D jquery
本地下載并保存到package.json中的devDependencies -
npm install
將package.json中devDependencies和dependencies 都進(jìn)行下載 -
npm install -production
只下載devpendencies中的文件 -
npm install angular@1.5.8
根據(jù)不同版本下載包 -
npm install -g nrm
全局進(jìn)行下載 -
npm install angular --registry=https://registry.npm.taobao.org
修改鏡像源 從淘寶下載angular - 下載包 install 刪除包 uninstall 更新包 update
查看包
-
npm info jquery
查看包的詳細(xì)信息 -
npm docs jquery
打開包homepage 地址
查看更多包的相關(guān)信息
nrm(鏡像源切換) npm (包下載) nvm(node版本管理)
- nrm 鏡像源切換校套,通過nrm切換
.npmrc
registry的下載地址 -
npm install -g nrm
全局進(jìn)行下載 -
nrm ls
查看鏡像源 -
nrm use taobao
切換鏡像源 -
nrm test
測試下載速度 - nrm切換好鏡像源以后 直接影響npm 下載,設(shè)置好以后不需要再做修改
bower npm yarn 常用的下載包的工具
- 下載
npm install bower -g
- bower下載慢 bower會(huì)把依賴的包也下載過來 node4(npm 2 也會(huì)將依賴的包也下載過來)
- bower 的下載地址github npm 從npmjs的官網(wǎng)下載
- bower 可以指定下載的路徑
//通過創(chuàng)建.bowerrc 添加
{
"directory":"js/common" //你的文件路徑
}
yarn 也是一個(gè)下載工具
- yarn由facebook公司在npm的基礎(chǔ)上創(chuàng)建一個(gè)下載工具
- yarn 下載速度要快一些 更方便管理主體包所依賴的包 yarn在做管理時(shí)更加精確
- 全局下載yarn
npm install -g yarn
-
yarn add jquery
下載jquery -
yarn remove jquery
移除jquery -
yarn init
yarn初始化 -
yarn global add http-server
全局下載包
bower yarn npm
- bower 可以指定路徑下載
- yarn 下載速度快 管理精確
- npm 最基本的下載
項(xiàng)目初始化
- 方便管理你的項(xiàng)目
- 如果有其他人使用能很快的知道這個(gè)項(xiàng)目是做什么用
- 通過script標(biāo)簽來簡化 命令行
- 方便管理你項(xiàng)目中所需的依賴
瀏覽器的包 node中的包的不同
- 瀏覽器引用一個(gè)包 script:src seajs commjs 都需要下載 異步
- node的包不需要下載(node運(yùn)行在本地)同步的node CMD同步 Commonjs規(guī)范 (require moduels)
node 模塊化(是以功能為主)
在node中有以下的方式引用包或者是模塊化
暴露出去的方式一共有以下3種方式
在node中找模塊有下面這么幾種方式尋找
緩存中->系統(tǒng)包->node_modules->按照路徑查找
會(huì)在系統(tǒng)緩存中查找對(duì)應(yīng)包
如果是按照系統(tǒng)模塊查找 按照模塊的名稱查找
如果是按照模塊的方式查找 node_modules
如果是路徑查找 .node(c++代碼)->.js->.json->報(bào)錯(cuò) (不建議省略后綴名)
global 全局對(duì)象的方式引用包
other.js 在other中通過 global.a=100 將a暴露出去
app.js 然后在app.js 通過require的方式加載other(require('相對(duì)路徑或者絕對(duì)路徑'))
global暴露模塊有一個(gè)問題是會(huì)污染全局變量
modules
- 通過modules.export將屬性或者是方法暴露給外界
- 外界通過require()的方式獲取暴露出來的內(nèi)容
let b=require('./other2.js)
// other2.js
module.exports={
b:b
}
exports
- 通過modules.export將屬性或者是方法暴露給外界
- 外界通過require()的方式獲取暴露出來的內(nèi)容
let b=require('./other2.js) b.b
// other2.js
exports.b=200
系統(tǒng)包
- path 路徑
- fs 文件系統(tǒng)
- assert 斷言
- http 網(wǎng)絡(luò)服務(wù)