Web填坑之路 --- Webpack學習

整個webpack是基於CommenJS規範
轉載鏈接:(https://www.cnblogs.com/littlebirdlbw/p/5670633.html)

CommonJS規範

  1. CommonJS規範的出發點:JS沒有模塊系統、標準庫較少、缺乏包管理工具;爲了讓JS可以在任何地方運行,以達到Java、C#、PHP這些後臺語言具備開發大型應用的能力
  2. 在CommonJS規範中:一個文件就是一個模塊,擁有單獨的作用域;普通方式定義的變量、函數、對象都屬於該模塊內;通過require來加載模塊;通過exports和module.exports來暴露模塊中的內容
  3. 所有代碼都運行在模塊作用域,不會污染全局作用域;模塊可以多次加載,但只會在第一次加載的時候運行一次,然後運行結果就被緩存了,以後再加載,就直接讀取緩存結果;模塊的加載順序,按照代碼的出現順序是同步加載的
  4. __dirname代表當前模塊文件所在的文件夾路徑,__filename代表當前模塊文件所在的文件夾路徑+文件名
  5. require(同步加載)基本功能:讀取並執行一個JS文件,然後返回該模塊的exports對象,如果沒有發現指定模塊會報錯
  6. 模塊內的exports:爲了方便,node爲每個模塊提供一個exports變量,其指向module.exports,相當於在模塊頭部加了這句話:var exports = module.exports,在對外輸出時,可以給exports對象添加方法,PS:不能直接賦值(因爲這樣就切斷了exports和module.exports的聯繫)
  7. npm root -g:查看npm全局包安裝位置,建議在nvm目錄下新建npm\node_modules目錄,然後設置npm的全局包安裝位置:npm config set prefix “”,然後將該路徑添加到環境變量中
  8. npm init -y:初始化一個package.json文件,加上-y就會默認生成該文件,無需一步一步填寫;npm docs 包名:查看包的文檔;npm install:安裝package.json中的dependencies屬性中所有依賴的包
  9. 由於npm的服務器是國外的,所以如果你沒有和諧工具是下載不了的,這裏推薦使用淘寶NPM鏡像:http://npm.taobao.org/,與官方的NPM的同步頻率目前爲10分鐘一次;安裝命令:npm install -g cnpm --registry=https://registry.npm.taobao.org,安裝包:cnpm install 包名(其它命令基本一致)
  10. 10.如果你不想下載cnpm,npm還提供了一個鏡像源管理工具:npm install -g nrm,通過:nrm ls,查看鏡像源列表,通過:npm use 鏡像源,來切換
  11. NPM的模塊加載機制(如果require的是絕對路徑文件,查找不會去遍歷每個node_modules目錄,其速度最快)
    1. 從module.paths數組中(由當前執行文件目錄到磁盤根目錄),取出第一個目錄作爲查找基準
    2. 直接從目錄中查找該文件,如果存在則結束查找,如果不存在則進行下一條查找
    3. 嘗試添加.js、.node、.json後綴之後查找,如果存在文件則結束查找,如果不存在則進行下一條查找
    4. 嘗試將require的參數作爲一個包來進行查找,讀取目錄下的package.json文件,取得main參數指定的文件
    5. 嘗試查找該文件,如果存在則結束查找,如果不存在則進行第三條查找
    6. 如果繼續失敗,則取出module.paths數組中的下一目錄作爲基準查找,循環第1-5個步驟
    7. 如果繼續失敗,循環第1-6個步驟,直到module.path中的最後一個值
    8. 如果繼續失敗,則拋出異常

命令學習

npm init -y生成package.json -y在init的時候省去了敲回車的步驟,生成的默認的package.json

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章