18壳繁、webpack IgnorePlugin

webpack 種的 IgnorePlugin 在打包時忽略本地化內(nèi)容绎签,如引入了一個插件枯饿,只用到了中文語言包,打包的時候把非中文語言包排除掉

  • 1诡必、安裝moment插件(時間處理庫)
yarn add moment
  • 2奢方、webpack.config.js 的plugins處添加配置
let webpack = require('webpack');
plugins: [
  // 忽略解析三方包里插件
  new webpack.IgnorePlugin(/\.\/locale/, /moment/)
]
  • 3、index.js代碼片段
//
import moment from 'moment'
// 引入中文
import 'moment/locale/zh-cn'
// 設(shè)置中文
moment.locale('zh-cn');
let momentStr = moment().subtract(10, 'days').calendar();
console.log('現(xiàn)在時間:', momentStr);

案例:

webpack.config.js完整配置

//  webpack是node寫出來的爸舒, 需要node的寫法
let path = require('path');
// path.resolve 相對路徑轉(zhuǎn)成絕對路徑
// console.log(path.resolve('dist'));
// 以當(dāng)前目錄
// console.log(__dirname);

// html-webpack-plugins 插件
let HtmlWebpackPlugins = require('html-webpack-plugin');

// 抽離css為單獨文件
let MiniCssExtractPlugin =  require('mini-css-extract-plugin');
// 導(dǎo)入樣式壓縮
let OptimizeCssPlugin = require('optimize-css-assets-webpack-plugin');
// 壓縮js
let UglifyjsPlugin =  require('uglifyjs-webpack-plugin');

// 導(dǎo)入webpack
let webpack = require('webpack');

// webpack相關(guān)配置
module.exports = {
    // 壓縮 model 必須是production才有效果
    optimization: {
        minimizer: [
            new UglifyjsPlugin({
                // 使用緩存
                cache: true
            }),
            new OptimizeCssPlugin()
        ]      
    },
    // 開發(fā)服務(wù)的配置
    devServer: {
        // 端口蟋字,默認(rèn)8080
        port: '8099',
        // 進(jìn)度條
        progress: true,
        // 啟動后訪問目錄,默認(rèn)是項目根目錄碳抄,這個設(shè)置到打包后目錄
        contentBase: './build',
        // 啟動壓縮
        //compress: true
    },
    // 模式愉老,2種:生產(chǎn)模式(production)和開發(fā)模式(development)
    // 開發(fā)模式不壓縮打包后代碼场绿,生產(chǎn)模式壓縮打包后代碼
    mode: 'development',
    // 入口,表示從哪里開始打包
    entry: './src/index.js',   
    // 表示出口(輸出后文件相關(guān)配置)
    output: {   
        // 打包后的文件名,產(chǎn)生哈希
        //filename: 'bundle.[hash].js',  
        // 哈希8位
        filename: 'bundle.[hash:8].js',  
        // 輸出后的路徑(必須是一個絕對路徑)
        path: path.resolve(__dirname, 'dist'),
        // 如果靜態(tài)文件放在了cdn css剖效、圖片路徑自動添加前綴
        // publicPath: 'http://itssh.cn/'
    },
    // 插件配置
    plugins: [
        new HtmlWebpackPlugins({
            // 模板位置
            template: 'index.html',
            // 文件名
            filename: 'index.html',
            // 生產(chǎn)開啟嫉入,壓縮代碼
            // minify: {
            //     // 刪除html雙引號
            //     removeAttributeQuotes: true,
            //     // 壓縮成一行
            //     collapseWhitespace: true
            // },
            // 文件哈希
            //hash: true
        }),
        // 抽離css為單獨文件
        new MiniCssExtractPlugin({
            filename: 'css/main.css'
        }),
        // 壓縮css
        //new OptimizeCssPlugin()
        // 壓縮js
        // new UglifyjsPlugin({
        //     // 使用緩存
        //     cache: true
        // })
        new webpack.ProvidePlugin({
            $: 'jquery'
        }),
        // 忽略解析三方包里插件
        new webpack.IgnorePlugin(/\.\/locale/, /moment/)
    ],
    // 模塊處理
    module: {
        noParse: '/jquery|lodash/',
        // loader
        rules: [
            // {
            //     test: /\.js$/, //匹配js文件
            //     use: {
            //         loader: 'eslint-loader',
            //         options: {
            //             enforce: 'pre'  // previous post
            //         }
            //     }
            // },
            // expose-loader提供全局
            // {
            //     test: require.resolve('jquery'),
            //     use: 'expose-loader?$'
            // },
            {
                test: /\.html$/,
                use: 'html-withimg-loader'
            },
            {
                test: /\.(png|jpg|gif)$/,
                use: {
                    loader: 'url-loader',
                    options: {
                        // 打包少于1000kb用base64,否則使用file-loader產(chǎn)生文件
                        limit: 1000,
                        // 產(chǎn)出路徑
                        outputPath: 'img/',
                        // 只給圖片添加前綴璧尸,如果使用publicPath,outputPath無效
                        // publicPath: 'http://itssh.cn/'
                    }
                }
            },
            // {
            //     test: /\.(png|jpg|gif)$/,
            //     use: 'file-loader',
            // },
            {
                test: /\.js$/, //匹配js文件
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: [
                            '@babel/preset-env'
                        ],
                        plugins: [
                            ["@babel/plugin-proposal-decorators", { "legacy": true }],
                            ["@babel/plugin-proposal-class-properties", { "loose" : true }],
                            "@babel/plugin-transform-runtime"
                        ]
                    }
                }
            },
            {
                test: /\.css$/, //匹配css文件
                // css-loader 處理css文件@import嵌套
                // style-loader 把css插入header
                // 多個loader需要數(shù)組咒林,單個可寫成字符串
                // loader順序:從右向左執(zhí)行,從下到上,單個loader可添加更多配置爷光,使用對象形式
                // use: [{loader: 'style-loader', options: ...}, 'css-loader']
                // use: [{
                //    loader: 'style-loader',
                //    options: {
                //        // 樣式插入到頂部
                //        insertAt: 'top'
                //    }
                // }, 'css-loader']
                // css-load處理完 再 抽離垫竞,從后往前執(zhí)行l(wèi)oader
                use: [ MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader' ]
            },
            {
                test: /\.less$/, //匹配less文件
                // css-loader 處理css文件@import嵌套
                // style-loader 把css插入header
                // 多個loader需要數(shù)組,單個可寫成字符串
                // loader順序:從右向左執(zhí)行,從下到上蛀序,單個loader可添加更多配置欢瞪,使用對象形式
                // use: [{loader: 'style-loader', options: ...}, 'css-loader']
                // use: [{
                //    loader: 'style-loader',
                //    options: {
                //        // 樣式插入到頂部
                //        insertAt: 'top'
                //    }
                // }, 'css-loader', 'less-loader']
                // 從后向前執(zhí)行
                use: [ MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader' , 'less-loader']
            }
        ]
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市徐裸,隨后出現(xiàn)的幾起案子遣鼓,更是在濱河造成了極大的恐慌,老刑警劉巖重贺,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骑祟,死亡現(xiàn)場離奇詭異,居然都是意外死亡气笙,警方通過查閱死者的電腦和手機(jī)次企,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來潜圃,“玉大人缸棵,你說我怎么就攤上這事”蹋” “怎么了蛉谜?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長崇堵。 經(jīng)常有香客問我型诚,道長,這世上最難降的妖魔是什么鸳劳? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任狰贯,我火速辦了婚禮,結(jié)果婚禮上赏廓,老公的妹妹穿的比我還像新娘涵紊。我一直安慰自己,他們只是感情好幔摸,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布摸柄。 她就那樣靜靜地躺著,像睡著了一般既忆。 火紅的嫁衣襯著肌膚如雪驱负。 梳的紋絲不亂的頭發(fā)上嗦玖,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音跃脊,去河邊找鬼宇挫。 笑死,一個胖子當(dāng)著我的面吹牛酪术,可吹牛的內(nèi)容都是我干的器瘪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼绘雁,長吁一口氣:“原來是場噩夢啊……” “哼橡疼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起庐舟,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤衰齐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后继阻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耻涛,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年瘟檩,在試婚紗的時候發(fā)現(xiàn)自己被綠了抹缕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡墨辛,死狀恐怖卓研,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情睹簇,我是刑警寧澤奏赘,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站太惠,受9級特大地震影響磨淌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜凿渊,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一梁只、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧埃脏,春花似錦搪锣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至堵幽,卻和暖如春狗超,著一層夾襖步出監(jiān)牢的瞬間监嗜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工抡谐, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桐猬。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓麦撵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親溃肪。 傳聞我的和親對象是個殘疾皇子免胃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

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