webpack/全棧開發(fā)常用工具

webpack(全局安裝)

    //webpack自身只有打包編譯功能+插件可以實(shí)現(xiàn)打包,編譯,測(cè)試等功能.
    安裝:
        cnpm i -g webpack
    編寫需要編譯的文件
        //src/1.js代碼
        import mod from './mod.js';//引入mod模塊
        
        consloe.log(mod);
        //src/mod.js
       export default 12;//輸出整體模塊是12;
        //export 可以輸出任意東西;export default class{};export default {a :12;b:5,fun(){xxx}}; export 與 import 可以在MDN查看詳細(xì)使用文檔
        //若export使用 export let a = 12;export let b = 5;不使用default,即不是輸出模塊,接收的JS就需要使用import {a,b as nb} from './mod.js';來接收屬性;as為取別名
    編寫配置文件:
        webpack.config.js //若不使用這個(gè)文件名,webpack編譯時(shí)需要使用webpack --config XXX;XXX為任意自定義的文件名
        //代碼
        module.exports ={
            entry:'./src/1.js',//需要編譯的文件路徑,配置文件沿用node規(guī)則,此處路徑要加./,否則會(huì)被當(dāng)做系統(tǒng)模塊去查找
            output:{
                path:'dest/',//輸出的路徑,此處建議使用path模塊下的絕對(duì)路徑函數(shù)resolve('dest/')
                filename: 'bundle.js',//輸出的文件名
            }
        }
        //webpack多入口,即多文件編譯
        module.exports ={
            entry:{
                index:'./src/a',//編譯a文件
                b:'./src/b'//編譯b文件
            },
            output:{
                path:'dest/',//輸出的路徑,此處建議使用path模塊下的絕對(duì)路徑函數(shù)resolve('dest/')
                filename: '[name].bundle.js',//此處的name為entry中的鍵,會(huì)被編譯為index.bundle.js與b.bundle.js兩個(gè)文件
            }
        }
    使用webpack編譯文件
    控制臺(tái)輸入webpack運(yùn)行即可;因?yàn)槿职惭b之后即為安裝cli,可以使用命令行了;

webpack(本地安裝,啟用webpack服務(wù)器webpack-dev-server)

webpack-dev-server(幫助開發(fā)的服務(wù)器,可以再服務(wù)器環(huán)境下測(cè)試頁面等功能) webpack(功能模塊) webpack-cli(命令行模塊)

1. 安裝 cnpm i webpack-dev-server webpack webpack-cli -D
2. 配置文件\ webpack.config.js
const Webpack = require('webpack');
    //代碼
    module.exports ={
        entry:'./src/1.js',//需要編譯的文件路徑,配置文件沿用node規(guī)則,此處路徑要加./,否則會(huì)被當(dāng)做系統(tǒng)模塊去查找
        output:{
            path:'dest/',//輸出的路徑,此處建議使用path模塊下的絕對(duì)路徑函數(shù)resolve('dest/')
            filename: 'bundle.js',//輸出的文件名
        },
        mode:'development',//測(cè)試版,production為正式版
        // webpack-dev-server配置
        plugins:[
        //開啟webpack的熱加載模塊,配合hot:true
        new Webpack.HotModuleReplacementPlugin()
        ]
        devServer:{
            contentBase:'static',//靜態(tài)文件建議使用path模塊下的絕對(duì)路徑函數(shù)resolve('static/')
            port:8089,//運(yùn)行端口
            hot:true,//開啟熱加載,需要配合webpack的HotModuleReplacementPlugin()函數(shù)使用,此時(shí)僅能使用js文件的自動(dòng)刷新,靜態(tài)文件需要在啟動(dòng)腳本命令中添加--watch
            historyApiFallback: true,//用來適應(yīng)前臺(tái)路由
        }
    }
3. 此時(shí)需要控制臺(tái)輸入webpack-dev-server --inline --watch來啟動(dòng)服務(wù)器,編譯后的文件存在內(nèi)存中(或者是dev-server默認(rèn)將文件編譯在根目錄),html文件引用時(shí)直接使用編譯后的文件名即可(bundle.js),--inline為加載刷新時(shí)刷新整個(gè)頁面,--watch為監(jiān)聽靜態(tài)頁面自動(dòng)刷新

webpack使用loader(俗稱:加載器,裝載器)

babel-loader用來編譯es6 安裝 babel-loader(給webpack提供接口) babel-core(真正的功能代碼) babel-preset-env(環(huán)境預(yù)設(shè))

    module.exports ={
        entry:{
            index:'./src/a',//編譯a文件使用loader可以不寫后綴名,
            b:'./src/b'//編譯b文件
        },
        output:{
            path:'dest/',//輸出的路徑,此處建議使用path模塊下的絕對(duì)路徑函數(shù)resolve('dest/')
            filename: '[name].bundle.js',//此處的name為entry中的鍵,會(huì)被編譯為index.bundle.js與b.bundle.js兩個(gè)文件
        },
        module:{//所有使用loader的配置都在module中配置
            rules:[
                {
                    test:/\.js$/,//以js結(jié)尾的文件
                    exclude:/node_modules/,//需要排除的js文件凑耻,node_modules文件夾下的js文件
                    use:{
                        loader:'babel-loader',//使用babel-loader
                        options:{
                            presets:['env']//配置使用環(huán)境預(yù)設(shè)
                        }
                    }
                }
            ]
        }
    }
    //此處可以完成編譯,但是無法使用,坐等后續(xù)學(xué)習(xí),

css-loader用來編譯css\less\sass等 安裝 css-loader

    //創(chuàng)建css文件,直接在css.js中可以引用該文件 import cs1 from './cs1.css'
    //webpack配置文件中售貌,編譯css.js文件即可,文件中cs1即為css文件中的代碼
    // module如下
        module:{//所有使用loader的配置都在module中配置
            rules:[
                {
                    test:/\.css$/,//以css結(jié)尾的文件,如果是less等,需要改成對(duì)應(yīng)的后綴名
                    use:{
                        loader:'css-loader',//使用css-loader
                        options:{
                            presets:['env']//配置使用環(huán)境預(yù)設(shè)
                        }
                    }
                }
            ]
        }

擴(kuò)展

爬蟲如果需要傳參的時(shí)候,根據(jù)訪問方法get直接在網(wǎng)址后面?傳參,post直接使用write('{"xxx":"xxx"}');

全棧開發(fā)常用工具
1. 編譯類
    babel      --> ES6編譯成ES5
    grunt\gulp --> 壓縮等功能
2. 打包類
    browserify --> 一堆文件打包成單個(gè)文件
3. 開發(fā)輔助
    brower-sync --> 多端同步,移動(dòng)端在線測(cè)試使用
4. 測(cè)試類
    單元測(cè)試 --> 對(duì)模塊、函數(shù)進(jìn)行測(cè)試
    集成測(cè)試 --> 對(duì)項(xiàng)目進(jìn)行測(cè)試
    壓力測(cè)試 --> 測(cè)試項(xiàng)目性能奸笤、負(fù)載能力、與隱藏BUG
webpack + 插件 處理以上全部問題;

npm 命令 -g與-D的使用
-g為全局安裝,安裝的是命令行,即 webpack-cli
-D為本地安裝,安裝的是webpack文件包
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末琉兜,一起剝皮案震驚了整個(gè)濱河市针余,隨后出現(xiàn)的幾起案子葱绒,更是在濱河造成了極大的恐慌,老刑警劉巖声登,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狠鸳,死亡現(xiàn)場離奇詭異,居然都是意外死亡悯嗓,警方通過查閱死者的電腦和手機(jī)件舵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脯厨,“玉大人铅祸,你說我怎么就攤上這事『衔洌” “怎么了临梗?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稼跳。 經(jīng)常有香客問我盟庞,道長,這世上最難降的妖魔是什么汤善? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任什猖,我火速辦了婚禮,結(jié)果婚禮上红淡,老公的妹妹穿的比我還像新娘不狮。我一直安慰自己,他們只是感情好在旱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布摇零。 她就那樣靜靜地躺著,像睡著了一般桶蝎。 火紅的嫁衣襯著肌膚如雪驻仅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天登渣,我揣著相機(jī)與錄音雾家,去河邊找鬼。 笑死绍豁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的牙捉。 我是一名探鬼主播竹揍,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼敬飒,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了芬位?” 一聲冷哼從身側(cè)響起无拗,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昧碉,沒想到半個(gè)月后英染,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡被饿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年四康,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狭握。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡闪金,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出论颅,到底是詐尸還是另有隱情哎垦,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布恃疯,位于F島的核電站漏设,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏今妄。R本人自食惡果不足惜郑口,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛙奖。 院中可真熱鬧潘酗,春花似錦、人聲如沸雁仲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽攒砖。三九已至缸兔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吹艇,已是汗流浹背惰蜜。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留受神,地道東北人抛猖。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親财著。 傳聞我的和親對(duì)象是個(gè)殘疾皇子联四,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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