webpack打包--自己整理的筆記

第一步:安裝webpack,在命令行輸入npm install -g webpack webpack-cli?

新建一個08webpack文件夾--里面新建src文件夾--src里面新建indedx.html,main.js

命令行輸入npm init -y--生成package.json

命令行輸入npm install jquery--生成node_modules

在index.html寫入內(nèi)容

<ul>

<li>1</li>

<li>2</li>

<li>3</li>

<li>4</li>

<li>5</li>

<li>6</li>

<li>7</li>

<li>8</li>

<li>9</li>

<li>10</li>

</ul>

在main.js寫入以下內(nèi)容

//導(dǎo)入jquery

import$from'jquery';

//寫入樣式

$('li:even').css({background:'red'});

$('li:odd').css({background:'lime'});

在package.json-scripts里面寫入以下

"start":"webpack ./src/main.js -o ./dist/bundle.js"

命令行輸入 npm start?生成 dist文件夾(bundle.js--文件)

把bundle.js?拉進index.html?里面, 再打開瀏覽器看是否有生成js-css樣式

//第二步:

08webpack里面新建一個webpack.config.js ,寫入以下代碼

//值允許使用common.js

//只是一個配制文件

//引入path內(nèi)置模塊--路徑操作

varpath = require('path');

//開發(fā)環(huán)境和生產(chǎn)環(huán)境--暴露

module.exports= {

//模式,只有兩個值development開發(fā)環(huán)境和production上線環(huán)境壓縮

mode:"development",

//入口文件

entry: path.join(__dirname,'./src/main.js'),

//出口

output: {

path:path.join(__dirname,'./dist'),//目錄如果不存在的話可以創(chuàng)建,--命令行再輸入npm start會自動生成dist,就不用

//<script src="../dist/bundle.js"></script>鏈接html頁面,會自動鏈接,在樣式創(chuàng)好再刪

filename:"bundle.js",//打包的js文件名稱

},

};

在webpack.config.js里面的路徑寫入成功后,

在命令行輸入npm install webpack webpack-cli -D--安裝本地webpack

在package.json 里面修改srart的值為webpack

再在命令行 npm run start--看是否成功--(可以修改下main.js樣式,再跑一次,看頁面顯示的顏色是否成功)

//第三步:

在命令行輸入npm install html-webpack-plugin -D--安裝插件--(會在package.json生成"html-webpack-plugin":"^3.2.0",)

在webpack.config.js? 寫入插件

//專門的插件

varHtmlWebpackPlugin=require('html-webpack-plugin');

以下代碼寫入module.export{}里面

plugins: [

newHtmlWebpackPlugin({

template:path.join(__dirname,'./src/index.html'),

filename:"index.html"

})

],

然后使用插件,再在命令行輸入npm run start驗證是否-成功(運行完之后會在dist里面生成index.html--并壓縮它)--

//第四步(安裝熱更新-端口號)

在命令行輸入?npm install webpack-dev-server -D? --安裝?熱更新,端口號之類的(會在package.json生成"webpack-dev-server":"^3.7.2")

在package.json?里面修改srart的(設(shè)置端口號)為webpack-dev-server --port 8888 --hot --open

在package.json?里面設(shè)置 build :"webpack" --用于接收存儲dist(隱藏起來)

在main.js輸入body樣式

$('body').css({background:'grey'});

(先把dist整個文件夾刪除--因為安裝以上代碼這個文件夾會被緩存)

再在命令行輸入npm run start驗證會實時更新,驗證body背景顏色是否顯示在頁面上

如果需要dist文件夾?再在命令行輸入?npm run build

//第五步(css需要 loader 給它正確的解析或轉(zhuǎn)化成為 webpack 認識的模塊)

在命令行輸入npm i style-loader -D--

在命令行輸入?npm install css-loader -D? --安裝以上兩個樣式--會在package.json里面生成??"css-loader":"^3.2.0",?"style-loader":"^1.0.0",

在webpack.config.js 寫入 module:{}對應(yīng)的函數(shù)--將css轉(zhuǎn)換成模塊--安裝樣式模塊后可以刪除html里面的<scriptsrc="../dist/bundle.js"></script>

module:{

rules:[

//所有以css結(jié)尾的文件名,以下代碼從右往左進行編譯

//css-loader 將文件轉(zhuǎn)成模塊

//style-loader 將css模塊插入網(wǎng)頁文檔中

{test:/\.css$/,use:['style-loader','css-loader'],exclude: [/node_modules/,/dist/]},

]

}

在src里面新建style文件夾 --再在里面建立index.css? 輸入body樣式

body{

background:blue!important;

}

在main.js里面 導(dǎo)出模塊 import './style/index.css'

//loder 將js文件轉(zhuǎn)換成模塊(在webpack.config文件里面)

import'./style/index.css';

再在命令行輸入npm start實時更新下看是否成功(看樣式藍色是否出來)

//第六步(less轉(zhuǎn)模塊化)(以及sass轉(zhuǎn)模塊化)--sass樣式強于less>css,會覆蓋less&css

命令行輸入npm i less-loader -D和npm i less -D &?npm install sass-loader node-sass -D

--會在package.json里面生成??"less":"^3.9.0",?"less-loader":"^5.0.0",

在style里面新建style.less 寫body入樣式用變量 @color

@color:gold;

body{

background:@color?!important;

}

在style里面新建sass.scss 寫body入樣式

body{

background:blue?!important;

}

在main.js里面 導(dǎo)出模塊 import './style/style.less'

import'./style/style.less';

import'./style/sass.scss';

在webpack.config.js 寫入 module:{rules:{test{}}}對應(yīng)的函數(shù)--將less轉(zhuǎn)換成模塊

//less-loader 默認依賴less需要安裝

//把less文件轉(zhuǎn)換成css文件

//css-loader 再轉(zhuǎn)換成webpack模塊

//style-loader 將css模塊插入網(wǎng)頁文檔中

{test:/\.less$/,use:['style-loader','css-loader','less-loader'],exclude: [/node_modules/]},

//新增

{test:/\.scss$/,use:['style-loader','css-loader','sass-loader'],exclude: [/node_modules/]},

再在命令行輸入 npm start 實時更新下看是否成功(看樣式金色是否出來)

//第七步--圖片轉(zhuǎn)成模板

命令行輸入以下

npm install url-loader -D

npm i file-loader -D?

在src里面新建images文件夾放入圖片

在style.less?寫body入樣式?插入圖片

@color:gold;

body{

background:@colorurl("../images/dog.jpg")!important;

}

在webpack.config.js 寫入 module:{rules:{test{}}}對應(yīng)的函數(shù)--將圖片轉(zhuǎn)換成模塊

//圖片轉(zhuǎn)模塊化

{test:/\.(png|jpeg|jpg|gif|wedp)$/,use:[{

loader:"url-loader",

options:{

limit:1024,

name:'[path][name]-[hash:5].ext'}

}]},

再在命令行輸入 npm start 實時更新下看是否成功(圖片是否出來)

//第八步:es6轉(zhuǎn)換es5--用于IE瀏覽器兼容

命令行輸入以下

npm install babel-core babel-loader@7.1.5 babel-plugin-transform-runtime babel-preset-env babel-preset-stage-0 -D

在webpack.config.js里面在module 寫入以下代碼--檢測IE兼容

//js轉(zhuǎn)模塊

?{test:/\.js$/,use:['babel-loader'],exclude: [/node_modules/,/dist/]}?

在main.js輸入以下代碼

//用于IE兼容測試

classPerson{

constructor(name){

this.name=name;

}

}

varp1=newPerson('ZZ');

console.log(p1);

在08webpack,創(chuàng)建一個文件 .babelrc?寫入以下兼容代碼(文件名前面必須加點)

{

"presets":["env","stage-0"],

"plugins":["transform-runtime"]

}

再在命令行輸入 npm start 實時更新下看是否成功(谷歌成功后,再復(fù)制http://localhost:8888/)去IE測試

(測試是否有console.log()的輸出)

在package.json里面命令行安裝上的以下五項必須記得

"babel-core":"^6.26.3",

"babel-loader":"^7.1.5",

"babel-plugin-transform-runtime":"^6.23.0",

"babel-preset-env":"^1.7.0",

"babel-preset-stage-0":"^6.24.1",

//第九步--引入vue

npm install -D vue-loader vue-template-compiler vue-style-loader

npm install -D vue-loader vue-template-compiler vue-style-loader

npm install vue -S

在webpack.config.js里面在寫入以下代碼--//引用vue

//引用vue

constVueLoaderPlugin = require('vue-loader/lib/plugin')

在webpack.config.js里面在plugins寫入以下代碼

new?VueLoaderPlugin()

在webpack.config.js里面在module 寫入以下代碼

//配置vue模板

{test:/\.vue$/,use: ['vue-loader']},

在webpack.config.js里面在module?修改以下代碼-style前面加上vue

{test:/\.css$/,use: ['vue-style-loader','css-loader']},

{test:/\.less$/,use: ['vue-style-loader','css-loader','less-loader']},

在index.html里面輸入

<divid="app"></div>

在main.js輸入以下代碼(可以把之前main.js試驗代碼全部刪除)

importVuefrom"vue";

importMyHeaderfrom"./MyHeader.vue";

varvm=newVue(MyHeader).$mount('#app');

在src里面新建MyHeader.vue文件 ,輸入以下代碼

<template>

<div>

MyHeader

</div>

</template>

<script>

export default{

name:"MyHeader"

}

</script>

<stylescoped>

</style>

再在命令行輸入 npm start 實時更新下看是否成功(是否有MyHeader輸出)

vue-style?對組件樣式私有化

scope? 局部作用域

//第十步

在webpack.config.js里面modules.export里面輸入以下代碼

//編譯運行

resolve: {

alias: {

'vue$':'vue/dist/vue.esm.js'

}

}

在main.js里面輸入以下代碼

//第一種編譯運行()--

varvm=newVue({

template:`<my-header></my-header>`,

components:{MyHeader}

}).$mount('#app');

////運行時第二種繁瑣

varvm=newVue({

render(h) {

returnh(MyHeader);

},

}).$mount('#app');

輸入完以上代碼后隨意運行一種,需要現(xiàn)在命令行 ctrl+c?先中止一下,再重新運行npm start?實時更新看結(jié)果是否有出來

壓縮dist-bundle.js?

在webpack.config.js里面修改module.exports?-mode的環(huán)境為production,再跑一次 npm run build?就壓縮成功8.6webpack

命令行裝以下,運行進行加快

第十一

npminstall-g @vue/cli

要下載的東西

命令行創(chuàng)建項目:vue create my-project--在文件夾生成my-project文件夾

C:\Users\86137\.vuerc? 用記事本打開,false修改為true

命令行輸入 vue ui --會打開瀏覽器頁面讓你創(chuàng)建新項目

8.6webpack

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末临扮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子俏橘,更是在濱河造成了極大的恐慌找御,老刑警劉巖巫湘,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異琢唾,居然都是意外死亡卓起,警方通過查閱死者的電腦和手機和敬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戏阅,“玉大人昼弟,你說我怎么就攤上這事∞瓤穑” “怎么了舱痘?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長离赫。 經(jīng)常有香客問我芭逝,道長,這世上最難降的妖魔是什么渊胸? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任铝耻,我火速辦了婚禮,結(jié)果婚禮上蹬刷,老公的妹妹穿的比我還像新娘瓢捉。我一直安慰自己,他們只是感情好办成,可當(dāng)我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布泡态。 她就那樣靜靜地躺著,像睡著了一般迂卢。 火紅的嫁衣襯著肌膚如雪某弦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天而克,我揣著相機與錄音靶壮,去河邊找鬼。 笑死员萍,一個胖子當(dāng)著我的面吹牛腾降,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碎绎,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼螃壤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了筋帖?” 一聲冷哼從身側(cè)響起奸晴,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎日麸,沒想到半個月后寄啼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年墩划,在試婚紗的時候發(fā)現(xiàn)自己被綠了涕刚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡走诞,死狀恐怖副女,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蚣旱,我是刑警寧澤碑幅,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站塞绿,受9級特大地震影響沟涨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜异吻,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一裹赴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧诀浪,春花似錦棋返、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至求摇,卻和暖如春射沟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背与境。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工验夯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摔刁。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓挥转,卻偏偏與公主長得像,于是被迫代替她去往敵國和親簸搞。 傳聞我的和親對象是個殘疾皇子扁位,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,492評論 2 348

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