#### 1. 理解npm、yarn依賴包管理的原理,兩者的區別
1. yarn相比npm的優點:速度快、版本號鎖定
1. 速度快 -- 并行安裝:npm串行安裝
2. 速度快 -- 離線模式:之前安裝過一個軟件包,再次使用yarn安裝時從之前的緩存中獲取,npm從網絡中下載
2. 版本號鎖定,保證團隊各個成員下載下來的包一致,避免因版本不同引起的程序錯誤
#### 2. 可以使用npm運行自定義腳本
1. npm 腳本就是執行shell腳本,shell可執行命令都可寫在npm script中
#### 3. 理解Babel、ESLint、webpack等工具在項目中承擔的作用
1. Babel將ES6的新語法轉換為瀏覽器可識別的兼容語法ES5 ES3
2. Babel默認只轉換新語法,對于新的ES6 API,如Proxy Promise Symbol Set等需要babel-polyfill支持
1. ESLint統一代碼規范,減少不必要的錯誤和隱患
1. webpack可以看做是模塊打包機,將整個項目內的所有文件當成模塊來進行管理,方便項目代碼管理與開發,在開發應用中可以使用語言新語法和特性,并對每個模塊文件應用不同的loader以及插件以轉換成瀏覽器可以運行的代碼
#### 4. ESLint規則檢測原理,常用的ESLint配置
#### 5. Babel的核心原理,可以自己編寫一個Babel插件
#### 6. 可以配置一種前端代碼兼容方案,如Polyfill
#### 7. webpack的編譯原理、構建流程、熱更新原理,chunk、bundle和module的區別和應用
#### 8. 可熟練配置已有的loaders和plugins解決問題,可以自己編寫loaders和plugins
#### 9. webpack項目優化
1. 忽略模塊的解析路徑
2. 忽略查找路徑
3. 優化打包速度,將公共模塊預先打包好放入到頁面中,頁面中模塊打包不打包比如react這類第三方庫:DllPlugin插件
4. 使用happypack實現多線程打包
5. import在生產環境下會自動去創造沒用的代碼--tree-shaking
6. scope hosting作用域提升
7. 抽離頁面公共代碼,抽離第三方代碼