05-開發(fā)服務(wù)器:devServer自動化(編譯、打開瀏覽器、更新內(nèi)容)

webpack.config.js中代碼

    mode:'development',
    //開發(fā)服務(wù)器devServer,用來自動化
    //特點:只會在內(nèi)存中編譯打包,不會有任何輸出,不輸出build文件。。。
    //需要安裝包:npm i webpack-dev-server
    //啟動devServer指令,npx webpack-dev-server
    
    devServer:{
        //我要運行的目錄,不是原代碼,
        contentBase:resolve(__dirname,'build'),
        //啟動zGip壓縮,更小更快
        compress:true,
        //端口號
        port:3000,
        //自動打開瀏覽器
        open:true
    }

頁面需要刷新才更新。
注意版本


image.png

代碼如下

//webpack配置文件,配置如何進行打包
//5部分,entry,output,loader,plugins,mode
const {resolve} = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports  = {
    entry:'./src/index.js',
    output:{
        filename:'out.js',
        path:resolve(__dirname,'build'),
        publicPath: './'//devServer上如果沒配置,就會找到這里
    },
    module:{
        rules:[
            {
               test:/\.css$/,
               use:[
                   'style-loader',
                   'css-loader'
               ]
            },
            {
               test:/\.scss$/,
               use:[
                   'style-loader',
                   'css-loader',
                   'sass-loader'//基于node-sass
               ]
            },
            {
                test:/\.less$/,
                use:[//use使用數(shù)組就是用多個loader處理
                    'style-loader',
                    'css-loader',
                    'less-loader'//基于less
                ]
            },
            //webpack發(fā)現(xiàn)頁面中多次引用同一張圖片,只打包一次這張圖片
            {//處理圖片 處理樣式中的圖片用url-loader
                test:/\.(jpg|png|gif)$/,
                //url-loader是依賴file-loader的,需要下載兩個包
                loader:'url-loader',//只用一個loader處理,可以不用use,直接用loader,loader上的配置在options選項中
                options:{
                    //當(dāng)打包的圖片小于8*1024時候,會轉(zhuǎn)成base64位圖片
                    //優(yōu)點減少頁面請求數(shù)量,減少服務(wù)器壓力
                    //缺點體積增大,文件請求速度變慢
                    //輸出的圖片只會是>8kb的圖片
                    limit: 8*1024,//我們通常會對8-12kb以下圖片進行base64位處理
                    name:'[hash:10].[ext]',//不想讓base64的圖片名字太長,hash名字取10位+.+原來的后綴(ext)
                    esModule:false
                }
            },
            {//處理html中的img圖片    
                test: /\.html$/,
                loader:'html-withimg-loader'    
            }
            ,
            {//處理其他資源,例如字體,除了html、js、css以外的資源
                //如果使用exclude,一定要排除的全面,否則各種報錯
                exclude:/\.(html|css|js|scss|less|jpg|png|gif)$/,//exclude是排除  test是檢測,都是正則
                loader:'file-loader',
                options:{
                    name:'[hash:10].[ext]'
                }
            },
        ]
    },
    plugins:[

        //功能:默認會創(chuàng)建一個空的html,自動引入打包輸出的所有js、css資源
        //需要有html,所有需要傳入配置template,找對應(yīng)的文件
        //原h(huán)tml模板頁,不需要引入打包的js、css
        new HtmlWebpackPlugin({
            template:'./src/index.html'
        })
    ],
    mode:'development',
    //開發(fā)服務(wù)器devServer,用來自動化
    //特點:只會在內(nèi)存中編譯打包,不會有任何輸出,不輸出build文件。。。
    //啟動devServer指令,npx webpack-dev-server需要包:webpack-dev-server
    //Cannot find module 'webpack-cli/bin/config-yargs'
    //原因ebpack的版本與webpack-dev-server的版本不兼容。
    devServer:{
        //我要運行的目錄,不是原代碼,
        contentBase:resolve(__dirname,'build'),
        //啟動zGip壓縮,更小更快
        compress:true,
        //端口號
        port:3000,
        //自動打開瀏覽器
        open:true
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容