使用webpack和vue-cli創(chuàng)建vue項(xiàng)目

環(huán)境聲名:webpack5+vue2
整理了一下通過(guò)基于webpack來(lái)創(chuàng)建一個(gè)vue項(xiàng)目的過(guò)程和通過(guò)vue-cli創(chuàng)建項(xiàng)目的過(guò)程,沒(méi)有用vite油航,以后學(xué)習(xí)但荤。

一、基于webpack創(chuàng)建
1确买、npm init ,構(gòu)建一個(gè)有npm包管理工具的項(xiàng)目
2、npm install webpack webpack-cli
3纱皆、完善項(xiàng)目目錄:src目錄下面一定要有入口文件湾趾,創(chuàng)建一個(gè)dist目錄下面需要一個(gè)html頁(yè)面
4、新建webpack.config.js文件派草,用module.export到處一個(gè)config的對(duì)象
必須包含entry,和output
5搀缠、安裝一些必要的loader
6、以使用sass為例近迁,需要安裝sass,sass-loader,css-loader,style-loader,并且在webpack中配置相應(yīng)的rules
7艺普、安轉(zhuǎn)babel-loader,使得瀏覽器可以將ES6語(yǔ)法轉(zhuǎn)為老語(yǔ)法,同時(shí)也要安裝@babel/core:babel的核心庫(kù)和@babel/preset-env,并且加上配置的rules規(guī)則歧譬。
babel/preset-env:可以根據(jù)你的配置(需要用戶自己加岸浑,比如指定瀏覽器種類和版本,也可以指定運(yùn)行環(huán)境的node版本)瑰步,來(lái)用對(duì)應(yīng)的plugin來(lái)將你的新代碼轉(zhuǎn)換成老的代碼矢洲。注意的是,合理的配置是可以減少打包的體積的缩焦。例如读虏,你的代碼的運(yùn)行環(huán)境支持新代碼的語(yǔ)法,通過(guò)配置可以避免進(jìn)行代碼轉(zhuǎn)換而產(chǎn)生多余的代碼袁滥。
8盖桥、安裝vue
9、安裝vue-loader,可以識(shí)別vue文件中的3種內(nèi)容轉(zhuǎn)化為js题翻。并且在webpack配置文件中加上這個(gè)loader的匹配規(guī)則和處理loader
查了一下揩徊,建議應(yīng)該將 vue-loader 和 vue-template-compiler 一起安裝 (遇到問(wèn)題記錄如下:vue-template-compiler得和vue是一個(gè)版本,如果有報(bào)錯(cuò)也可以考慮一下 vue-loader和vue-template-compiler的版本是否對(duì)應(yīng)的上)
這個(gè)插件在安裝的時(shí)候藐握,不僅需要在rules里面聲名規(guī)則靴拱,還需要在plugins聲名一個(gè)實(shí)例化的插件對(duì)象
(而vue-cli是一個(gè)開箱即用的項(xiàng)目腳手架工具,可以不用手動(dòng)配置webpack猾普,不然配置完webpack還需要配置vue-loader)
(這個(gè)插件會(huì)將webpack config定義的其他諸如css,js的規(guī)則袜炕,也應(yīng)用到vue文件中去)
10、規(guī)定如何處理文件初家,圖片等
11偎窘、安裝vue-router,vue2的話需要用vue-router@3
12溜在、嘗試寫一個(gè)vue的文件陌知,在src下面創(chuàng)建一個(gè)入口的vue文件App.vue。然后在main.js里面把App的vue掖肋,掛載到頁(yè)面上的id節(jié)點(diǎn)上去
13仆葡、嘗試運(yùn)行項(xiàng)目,需要修改package.json文件志笼,"dev": "webpack --mode=development --watch"(--watch參數(shù)表示實(shí)時(shí)改動(dòng)就編譯),"build": "webpack --mode=production",
14沿盅、安裝vue-router,和axios這種要用的依賴,或者說(shuō)element-ui
15纫溃、建立各個(gè)頁(yè)面組件腰涧,指定router里的路由和組件的映射,在入口js中使用vue-router插件,并在App.vue中使用<router-link></router-link>
16紊浩、以上工作完成之后想要看效果都是通過(guò)運(yùn)行npm run dev(因?yàn)閣ebpack攜帶了watch指令窖铡,因此有改動(dòng)都會(huì)進(jìn)行一個(gè)自動(dòng)的編譯)疗锐,然后打開dist目錄下面的index.html文件的。如果想要在每次改動(dòng)之后html文件也被自動(dòng)刷新费彼,可以安裝webpack-dev-server滑臊。
17、webpack-dev-server:實(shí)現(xiàn)了在本地搭建一個(gè)web服務(wù)器并且實(shí)現(xiàn)改動(dòng)實(shí)時(shí)加載敌买。npm install --save-dev webpack-dev-server
安裝之后只需要在webpack的配置下面新建一些配置简珠,deveServer: {static: './dist',}
以上配置告知 webpack-dev-server阶界,在 localhost:8080 下建立服務(wù)虹钮,將 dist 目錄下的文件,作為8080端口的可訪問(wèn)文件。
還需要在package.json中修改一個(gè)啟動(dòng)web服務(wù)器的命令:‘start’:'webpack-dev-server --open --mode=development'
附上我的webpack.config.js文件:

const path = require('path')
const {VueLoaderPlugin} = require('vue-loader')

module.exports = {
    entry: './src/index.js',
    output: {
        path: path.resolve(__dirname, 'dist'),//在當(dāng)前文件所在的的絕對(duì)路徑下找dist文件
        filename: 'main.js'
    },
    devServer:{
        port: 8081,
        static: './dist',
    },
    //loader的配置
    module: {
        rules: [
            {
                test: /\.vue$/,
                use: 'vue-loader'
            },
            {
                test: /\.s[ac]ss$/,
                use: ['style-loader','css-loader','sass-loader']
            },
            {
                test: /\.m?js$/,
                exclude: /(node_modules|bower_components)/,
                use:{
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            },
            {
                test: /\.(png|jpe?g|gif|svg|webp)$/,
                type: 'asset/resource'
            }
        ]
    },
    plugins:[
        new VueLoaderPlugin()
    ]
}

二、基于vue-cli創(chuàng)建項(xiàng)目
1本姥、安裝@vue/cli
2羡铲、通過(guò)vue create hello-world 來(lái)創(chuàng)建應(yīng)用
3、通過(guò)@vue/cli安裝的項(xiàng)目仗谆,內(nèi)置vue-cli-service命令,這個(gè)命令會(huì)啟動(dòng)一個(gè)本地的開發(fā)服務(wù)器(基于 webpack-dev-server) 。如果想要配置這個(gè)服務(wù)器律姨,可以通過(guò)vue.config.js中的devServer來(lái)配置。
@vue/cli安裝的項(xiàng)目臼疫,有一個(gè)vue-cli-service-build的命令可以用來(lái)打包(據(jù)文檔說(shuō)帶有對(duì)js,css,html的壓縮功能择份,和vendor chunk splitting功能,chunk manifest會(huì)自動(dòng)內(nèi)聯(lián)在HTML里烫堤。有待驗(yàn)證荣赶。)
4、通過(guò)運(yùn)行package.json中的命令鸽斟,npm run serve就可以把項(xiàng)目跑起來(lái)
項(xiàng)目結(jié)構(gòu)如下:

1668825756904.png

public下面的文件不回經(jīng)過(guò)webpack處理拔创,會(huì)直接被復(fù)制到dist目錄下(除了空文件)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市富蓄,隨后出現(xiàn)的幾起案子剩燥,更是在濱河造成了極大的恐慌,老刑警劉巖立倍,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灭红,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡帐萎,警方通過(guò)查閱死者的電腦和手機(jī)比伏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)疆导,“玉大人赁项,你說(shuō)我怎么就攤上這事。” “怎么了悠菜?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵舰攒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我悔醋,道長(zhǎng)摩窃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任芬骄,我火速辦了婚禮猾愿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘账阻。我一直安慰自己蒂秘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布淘太。 她就那樣靜靜地躺著姻僧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蒲牧。 梳的紋絲不亂的頭發(fā)上撇贺,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音冰抢,去河邊找鬼松嘶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛晒屎,可吹牛的內(nèi)容都是我干的喘蟆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鼓鲁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蕴轨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起骇吭,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤橙弱,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后燥狰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棘脐,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年龙致,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛀缝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡目代,死狀恐怖屈梁,靈堂內(nèi)的尸體忽然破棺而出嗤练,到底是詐尸還是另有隱情,我是刑警寧澤在讶,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布煞抬,位于F島的核電站,受9級(jí)特大地震影響构哺,放射性物質(zhì)發(fā)生泄漏革答。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一曙强、第九天 我趴在偏房一處隱蔽的房頂上張望残拐。 院中可真熱鬧,春花似錦旗扑、人聲如沸蹦骑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至边败,卻和暖如春袱衷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笑窜。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工致燥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人排截。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓嫌蚤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親断傲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脱吱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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