webpack的簡單使用(js模塊化打包超級詳細)


webpack的簡單使用(js模塊化打包超級詳細)

1.安裝node或者檢查node的版本

webpack的使用依賴node,所以要先安裝node,另外node的版本也不能過低此處建議版本不要低於8.9

附上一篇很詳細的node安裝教程鏈接https://www.cnblogs.com/li150dan/p/10451772.html。

查看node的版本,在終端運行 node -v

2.安裝webpack(3.6.0)

我選擇了3.6.0的版本,因為本人也在學習vue,而vue cli2 使用的也是webpack3.6.0所以我們這里也使用webpack3.6.0,這樣我們熟悉了webpack3.6.0的相關配置和目錄文件部署,再去看cli2的結構就是水到渠成了。

首先我們先全局安裝webpack3.6.0,后面會局部安裝,兩者的差別我會在后面解釋,那么運行命令 :

npm install webpack@3.6.0 -g

(我使用的是vscode,在vscode終端運行命令,使用復制是Ctrl + Insert,粘貼是Shift + Insert)。

3.文件目錄

這里是我創建的目錄,在webpack-lianxi文件夾下創建了兩個文件夾和一個index.html文件,其中src文件夾放入我們寫的各種js文件,然后dist是我們使用webpack打包之后生成的文件存放的位置。

首先在aaa.js 文件中我們隨便寫了兩個函數然后用commonJS的語法把兩個方法導出。

然后在info.js文件中用ES6的語法導出了一個變量

注意

!!!!

在我這個例子中絕對不能把ES6和commonJS兩個導出規范寫在同一個js文件中,不然在打包的時候會報錯。報錯信息:**Uncaught TypeError: Cannot assign to read only property 'exports' of object **

然后在main.js文件中引入導出的這些變量

然后我們就可以在webpack-lianxi文件夾下運行終端,使用命令:

webpack ./src/main.js ./dist/bundle.js

bundle.js文件名可以隨意取,但后面自動打包時,會生成這么一個文件所以我們也取名叫這個名字。最后在index.html中引入這個文件就可以了。

瀏覽器控制台:

4.配置webpack.config.js文件使打包命令更簡單

在根目錄下新建文件webpack.config.js(目前此名字是一定的不能隨意更改)。在該文件下添加如下代碼

const path = require('path')
module.exports = {
    entry: './src/main.js',
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'bundle.js'
    }
}

entry 是入口文件,output是導出文件,但是我們不能簡單地設置為 './dist/bundle.js',這里我們要使用絕對路徑,所以需要引入path,path是存在於node包里,這里涉及到node的知識,就不詳細講述,所以你還需要在終端運行這個命令:

npm init

(其實這一步你也可以在剛創建你的根目錄文件夾的時候就執行)

這個時候我們在終端只需運行命令 : webpack,就會自動為我們打包了。

在這里值的說明的是根據我的推測,因為目前我們強制給自動打包配置文件取名為了webpack.config.js,所以當你執行webpack命令時他默認應該是執行了webpack webpack.config.js這個命令,那么我們能不能自己取名,比如取名wanglei.config.js,然后執行webpack wanglei.config.js呢,答案是不能!但后面項目中我們可能會運行多個配置文件 比如你又配置了某個配置文件 a.config.js 你就需要這樣寫命令webpack a.config.js,這樣寫起來會顯得很麻煩,所以我們可以在package.json中配置命令,如圖添加代碼:

另外如果之前你執行webpack這個命令,終端會去全局查找webpack,還記得我們一開始是使用的npm install webpack@3.6.0 -g來安裝的webpack嗎,我們自己聯系時是沒有任何問題,但當我們參與到公司項目中時,你把之前同事開發的項目clone下來,如果你的同事之前是基於webpack3.6.0來配置的,而你電腦上全局安裝的是大於這個版本的webpack那么就有可能出現問題,所以此時你需要在你clone下來的項目文件夾下局部安裝一個3.6.0的webpack來適配你同事的項目,此外我們使用webpack只是在開發時需要他幫我們打包,當我們發布到線上時是用不到webpack的,所以我們應該局部安裝一個開發時依賴那么運行如下命令:

npm install webpack@3.6.0 --save-dev

然后你就會看到他自動生成了下面這些:

當你使用命令npm run build 命令時,會優先在本地尋找你安裝的webpack!!!

本篇關於webpack打包js文件的介紹到這里就結束了。有問題歡迎留言。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM