[零基礎(chǔ)學(xué)習(xí)Vue3+webpack項目]的webpack對vue3進行編碼打包的詳解(2)

首先聲明這是vue3+webpack昔脯;

在:

[零基礎(chǔ)學(xué)習(xí)Vue+webpack]之vue+webpack項目的基礎(chǔ)依賴項的安裝詳解(1)http://www.reibang.com/p/0fa12aa731ff


中已經(jīng)對vue+webpack的基礎(chǔ)依賴項進行了安裝和講解啄糙,這篇文章繼續(xù)對項目的依賴項進行完善。

首先在package.json文件中的scripts加上"start": "webpack"云稚;

然后執(zhí)行package.json中scripts的"start": "webpack"

也就是在編輯器vsCode的終端中輸入:npm run start

圖1

會出現(xiàn)如上圖提示隧饼,然后按照提示輸入:yes

如果出現(xiàn)了如下圖報錯:

圖2

可能就是本地的node版本與webpack不匹配,這時可以將node升級或者將webpack降級即可静陈,本項目是更改的webpack燕雁,

webpack對應(yīng)的版本分別改成以下版本:(其中多加了webpack-cli和webpack-dev-server)

? ? "webpack": "^4.46.0",

? ? "webpack-cli": "^3.3.11",

? ? "webpack-dev-server": "^3.11.0"

圖3

如果沒有報錯,那么直接安裝webpack-cli鲸拥、webpack-dev-server這兩個依賴即可拐格;

然后刪除node_modules這個依賴項文件夾(或者將已經(jīng)下載的依賴項用命令進行卸載也行,卸載的命令是:npm uninstall 【需要卸載的依賴】)之后刑赶,

在終端中輸入:npm install

重新安裝package.json中的依賴項及其版本捏浊;

然后重新在終端中輸入:npm run start

執(zhí)行完成之后,項目中多出了一個dist的文件夾撞叨,里面包含了一個main.js的文件金踪;

main.js 在該文件中可以找到在src文件夾下index.js中代碼,因為在沒有設(shè)置webpack的配置文件時谒所,默認就是打包的src/index.js這個文件热康;

此時表示能夠成功打包項目但是終端會提示未設(shè)置mode的警告;

如下圖:

圖4

這時就需要設(shè)置配置文件了劣领,新建開發(fā)環(huán)境和生產(chǎn)環(huán)境的配置文件姐军,分別為:

開發(fā)環(huán)境:webpack.dev.config.js? (在本地做項目開發(fā)的過程中使用的配置文件)

生產(chǎn)環(huán)境:webpack.prod.config.js(項目已完成并上線使用的配置文件)

然后對開發(fā)環(huán)境的配置文件進行編寫;

在webpack.dev.config.js文件中加入以下代碼:

module.exports = {

? ? mode:'development',

}

其中的'mode'選項沒有被設(shè)置的情況下,webpack將為這個值回退到'production'奕锌。

而'mode'設(shè)置選項有(開發(fā))'development'和(生產(chǎn))'production'兩種著觉,為每個環(huán)境啟用默認值。

你也可以把它設(shè)置為'none'來禁用任何默認行為惊暴;

這里我們設(shè)置為'development'饼丘,因為目前項目屬于開發(fā)過程之中;

如下圖:

圖5

接著在package.json中的scripts對象中加入:

"dev-build-server": "webpack --config ./webpack.dev.config.js --progress"

表示根據(jù)webpack.dev.config.js這個配置文件進行打包辽话;

在終端中輸入:npm run dev-build-server

進行再次打包肄鸽,如下圖:

圖6

這是就不會出現(xiàn)之前的警告提示了;

以上是webpack對默認文件進行打包油啤,并且打包到默認路徑的過程典徘;

接下去就是對vue代碼進行打包的相關(guān)配置:

首先在package.json的devDependencies中加入以下代碼:

? ? "babel-loader": "^8.0.5",

? ? "@babel/core": "^7.17.8",

? ? "@babel/preset-env": "^7.16.11",

? ? "style-loader": "^1.2.1",

? ? "css-loader": "^3.5.3",

? ? "html-webpack-plugin": "^4.3.0",

? ? "vue-loader": "^16.0.0-beta.4",

? ? "@vue/compiler-sfc": "^3.2.33",

其中

babel-loader:這個loader主要作用是在Webpack打包的時候萌京,用Babel將ES6的代碼轉(zhuǎn)換成ES5版本的奖蔓。

@babel/core:作用是把 js 代碼分析成 ast 缎谷,方便各個插件分析語法進行相應(yīng)的處理济赎。有些新語法在低版本 js 中是不存在的,如箭頭函數(shù)腌且,rest 參數(shù)谬返,函數(shù)默認值等鲁豪,這種語言層面的不兼容只能通過將代碼轉(zhuǎn)為 ast冗锁,分析其語法后再轉(zhuǎn)為低版本 js齐唆。

@babel/preset-env:在官網(wǎng)介紹是一款自動管理瀏覽器版本和babel語法轉(zhuǎn)換插件映射的一款工具。

style-loader:將所有的計算后的樣式加入頁面中,html頁面中插入css代碼蒿讥。

css-loader:解析CSS樣式蝶念,可以用模塊的方式手動對象形式寫樣式抛腕,style-loader自動處理了這個注入芋绸。

html-webpack-plugin:將vue或者react編譯打包后的文件直接注入到html模板中。

vue-loader:是一個webpack的loader担敌,是vue文件的一個加載器摔敛,主要用來處理vue組件文件,配合 webpack以及相關(guān)loader全封,來進行編譯模版马昙、scoped CSS和熱重載。

@vue/compiler-sfc:@vue/compiler-sfc 替換掉了 vue-template-compiler刹悴,是vue3需要的依賴項行楞。

以上這幾個庫簡單一點來說就是將vue的代碼解析轉(zhuǎn)化成瀏覽器能讀取并能實現(xiàn)效果顯示的工具。

接著在終端中輸入:npm install

下載以上加入的庫土匀,使用npm install的好處就是一次性下載package.json所寫的依賴項子房,不用一個一個的去下載;

接下去就是繼續(xù)對webpack.dev.config.js文件進行配置:

代碼如下:

const path = require('path');

const { VueLoaderPlugin }=require("vue-loader")

var HtmlWebpackPlugin = require('html-webpack-plugin');? ? ? ? // 把打包后的文件直接注入到html模板中

module.exports = {

? ? mode:'development',? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 設(shè)置開發(fā)模式

? ? output:{

? ? ? ? path:path.resolve(__dirname,'./build/development'),? ? // 動態(tài)獲取出口路徑(絕對路徑)-文件編譯后的位置

? ? ? ? filename:'bundle.js'? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 出口文件名

? ? },

? ? module: {

? ? rules: [

{

test: /\.(js)$/,

use: {

loader: "babel-loader",

options: {

presets: ['@babel/preset-env'],

}

},

exclude: /node_modules/

},{

test:/\.(css)$/,

use:[{

loader:"style-loader"? ? ? ? ? ? ? ? ? // 將所有的計算后的樣式加入頁面中,html頁面中插入css代碼

},{

loader:"css-loader",? ? ? ? ? ? ? ? ? ? // 解析CSS樣式,可以用模塊的方式手動對象形式寫樣式,style-loader自動處理了這個注入

},//能夠使用類似@import 和 url(...)的方法實現(xiàn) require()的功能

]

},{

? ? ? ? ? ? ? ? test:/\.(vue)$/,

? ? ? ? ? ? ? ? use:{

? ? ? ? ? ? ? ? ? ? loader:"vue-loader"

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ],

},

? ? plugins:[

new VueLoaderPlugin(),

new HtmlWebpackPlugin({ ? ? ? ? ? ? ? ? ? ? ? ? // 把打包后的文件直接注入到html模板中

title:'平臺',

template:path.join(__dirname, "./src/index.html"),? // 指定模板頁面

filename: 'index.html',? ? ? ? ? ? ? ? ? ? ? ? ? ? // 模板的名稱

inject: 'body',? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 將編譯的vue的js文件注入到模板頁面的body內(nèi)

})

],

}

加上以上代碼,vue項目編碼的相關(guān)配置就設(shè)置的差不多了证杭,而以上代碼也有對關(guān)鍵對象屬性做對應(yīng)的注釋田度,如果有看不懂的可以留言交流;

接下去就可以開始正式的寫vue代碼了解愤。

這篇文章先講到這里镇饺,下篇文章更精彩。

關(guān)注公眾號(月影WEB)送讲,了解更多的前后端知識奸笤;

歡迎大家關(guān)注互相交流學(xué)習(xí);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哼鬓,一起剝皮案震驚了整個濱河市揭保,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌魄宏,老刑警劉巖秸侣,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宠互,居然都是意外死亡味榛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進店門予跌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來搏色,“玉大人,你說我怎么就攤上這事券册∑到危” “怎么了?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵烁焙,是天一觀的道長航邢。 經(jīng)常有香客問我,道長骄蝇,這世上最難降的妖魔是什么膳殷? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮九火,結(jié)果婚禮上赚窃,老公的妹妹穿的比我還像新娘。我一直安慰自己岔激,他們只是感情好勒极,可當我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虑鼎,像睡著了一般辱匿。 火紅的嫁衣襯著肌膚如雪冀惭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天掀鹅,我揣著相機與錄音散休,去河邊找鬼。 笑死乐尊,一個胖子當著我的面吹牛戚丸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播扔嵌,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼限府,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了痢缎?” 一聲冷哼從身側(cè)響起胁勺,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎独旷,沒想到半個月后署穗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡嵌洼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年案疲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片麻养。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡褐啡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鳖昌,到底是詐尸還是另有隱情备畦,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布许昨,位于F島的核電站懂盐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏车要。R本人自食惡果不足惜允粤,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翼岁。 院中可真熱鬧,春花似錦司光、人聲如沸琅坡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榆俺。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茴晋,已是汗流浹背陪捷。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诺擅,地道東北人市袖。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像烁涌,于是被迫代替她去往敵國和親苍碟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,687評論 2 351

推薦閱讀更多精彩內(nèi)容