webpack的使用入門筆記

1.webpack 的使用

1.1先創建一個目錄,再創建如圖一下的文件
1.
1.2在項目根目錄中運行 npm i webpack --save-dev 安裝到依賴項目中

2.

1.3使用命令 npm init 初始化項目
1.4使用 npm i 庫名 --save 安裝各依賴庫
1.5在main.js裏面編寫我們的函數

3
1.6. 直接在頁面上引用main.js會報錯,因爲瀏覽器不認識import這種高級的JS語法,需要使用webpack進行處理,webpack默認會把這種高級的語法轉換爲低級的瀏覽器能識別的語法;

webpack 打包 main.js 到 dist 中

2.1 webpack version 4.0以上使用 webpack ./src/main.js ./dist/bundle.js 會出錯

在這裏插入4圖片描述
在控制檯可以看到main.js已經成功打包到 dist中去了,但是實際上是沒有成功的,原因是版本過高了,原來的命令已經不適合用了。
把原來的命令改爲 webpack ./src/main.js -o ./dist/bundle.js

5
可以看到打包已經成功了,(自動忽略警告)

2.2我們每次寫完main.js 都要 執行一下 webpack ./src/main.js -o ./dist/bundle.js 命令 ,這樣很麻煩。
這個時候我們可以在根目錄創建一個文件名爲:webpack.config.js
7
2.3在這個文件裏面我們要指定入口和出口,
入口就是要打包的文件;出口就是要打包到那裏的文件。
8
2.4有時候hbuilder不能將join識別成一個函數這時候配置文件可以改成下面的樣子。
8
2.5這時候再運行命令 webpack 結果如下
10
2.6每次修改代碼後,都要運行一下webpack命令,這樣太麻煩了,所有引出了
webpack-dev-server,來實現代碼實時打包編譯,當修改代碼之後,會自動進行打包構建。

3.webpack-dev-server

3.1. 運行*cnpm i webpack-dev-server --save-dev*安裝到開發依賴

3.2. 因爲 webpack-dev-sever是本地項目安裝的,所以無法全局運行,假如運行會出現一下錯誤。
11
3.3. 這時候就要去 package.json添加一個命令
“dev” : “webpack-dev-server”
12
3.4再次運行命令 npm run dev
13
3.5 這時候我們每一次修改完代碼後,它都會幫我們自動打包
14
3.6.這時候我們要查看我們自己的網頁 已經是不像以前那個樣子直接打開了,而是要通過它開啓的服務地址打開。
14
3.6這個時候訪問webpack-dev-server啓動的**http://localhost:8080**/網站,發現是一個文件夾的面板,需要點擊到src目錄下,才能打開我們的index首頁,此時引用不到bundle.js文件(bundle.js放在內存裏面了),需要修改index.html中script的src屬性爲:<script src="../bundle.js"></script>
16
3.7修改引用bundle.js的引用路徑,這時候就能實時刷新了。(不用刷新瀏覽器)
17
3.8 加一個參數 --open 在dev 裏面,每次運行 npm run dev 都會自動打開瀏覽器
也可以加個命令打開指定窗口(–port 8888)
18
19
3.9 爲了能在訪問http://localhost:8080/的時候直接訪問到index首頁,可以使用--contentBase src指令來修改dev指令,指定啓動的根目錄

3.91 現在每次運行 npm run dev 的命令都是講main.js重新打包成bundle.js文件,這樣太浪費時間了,這個時候可以 加個指令 --hot 熱加載,它可以每次打包都是修改過的文件。

20
3.92.由於使用--contentBase指令的過程比較繁瑣,需要指定啓動的目錄,同時還需要修改index.html中script標籤的src屬性,所以推薦大家使用html-webpack-plugin插件配置啓動頁面.(先安裝 html-webpack-plugin插件

// 導入處理路徑的模塊
var path = require('path');
// 導入自動生成HTMl文件的插件
**var htmlWebpackPlugin = require('html-webpack-plugin');**

module.exports = {
    entry: path.resolve(__dirname, 'src/js/main.js'), // 項目入口文件
    output: { // 配置輸出選項
        path: path.resolve(__dirname, 'dist'), // 配置輸出的路徑
        filename: 'bundle.js' // 配置輸出的文件名
    },
    plugins:[ // 添加plugins節點配置插件
        new htmlWebpackPlugin({
            template:path.resolve(__dirname, 'src/index.html'),//模板路徑
            filename:'index.html'//自動生成的HTML文件的名稱
        })
    ]
}

將index.html中script標籤註釋掉,因爲html-webpack-plugin插件會自動把bundle.js注入到index.html頁面中!
內存裏面的頁面(自動幫我們引用bundle.js)
21
硬盤上的頁面。
22

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