1. 程式人生 > >前端與移動開發之vue-day5(1)

前端與移動開發之vue-day5(1)

在網頁中會引用哪些常見的靜態資源?
JS

.js .jsx .coffee .ts(TypeScript 類 C# 語言)

CSS

.css .less .sass .scss

Images

.jpg .png .gif .bmp .svg

字型檔案(Fonts)

.svg .ttf .eot .woff .woff2

模板檔案

.ejs .jade .vue【這是在webpack中定義元件的方式,推薦這麼用】
網頁中引入的靜態資源多了以後有什麼問題???
網頁載入速度慢, 因為 我們要發起很多的二次請求;
要處理錯綜複雜的依賴關係

如何解決上述兩個問題
合併、壓縮、精靈圖、圖片的Base64編碼
可以使用之前學過的requireJS、也可以使用webpack可以解決各個包之間的複雜依賴關係;

什麼是webpack?
webpack 是前端的一個專案構建工具,它是基於 Node.js 開發出來的一個前端工具;
如何完美實現上述的2種解決方案
使用Gulp, 是基於 task 任務的;
使用Webpack, 是基於整個專案進行構建的;

藉助於webpack這個前端自動化構建工具,可以完美實現資源的合併、打包、壓縮、混淆等諸多功能。
根據官網的圖片介紹webpack打包的過程
webpack官網

webpack安裝的兩種方式
執行npm i webpack -g全域性安裝webpack,這樣就能在全域性使用webpack的命令
在專案根目錄中執行npm i webpack --save-dev安裝到專案依賴中

初步使用webpack打包構建列表隔行變色案例
執行npm init初始化專案,使用npm管理專案中的依賴包
建立專案基本的目錄結構
使用cnpm i jquery --save安裝jquery類庫
建立main.js並書寫各行變色的程式碼邏輯:


// 匯入jquery類庫
    import $ from 'jquery'

    // 設定偶數行背景色,索引從0開始,0是偶數
    $('#list li:even').css('backgroundColor','lightblue');
    // 設定奇數行背景色
    $('#list li:odd').css('backgroundColor','pink');

直接在頁面上引用main.js會報錯,因為瀏覽器不認識import這種高階的JS語法,需要使用webpack進行處理,webpack預設會把這種高階的語法轉換為低階的瀏覽器能識別的語法;
執行webpack 入口檔案路徑 輸出檔案路徑對main.js進行處理:

webpack src/js/main.js dist/bundle.js
使用webpack的配置檔案簡化打包時候的命令
在專案根目錄中建立webpack.config.js
由於執行webpack命令的時候,webpack需要指定入口檔案和輸出檔案的路徑,所以,我們需要在webpack.config.js中配置這兩個路徑:


// 匯入處理路徑的模組
   var path = require('path');

   // 匯出一個配置物件,將來webpack在啟動的時候,會預設來查詢webpack.config.js,並讀取這個檔案中匯出的配置物件,來進行打包處理
   module.exports = {
       entry: path.resolve(__dirname, 'src/js/main.js'), // 專案入口檔案
       output: { // 配置輸出選項
           path: path.resolve(__dirname, 'dist'), // 配置輸出的路徑
           filename: 'bundle.js' // 配置輸出的檔名
       }
   }