WebPack

WebPack(模塊打包機(jī))

作用

  • 打包:多個(gè)JavaScript->一個(gè)文件
  • 轉(zhuǎn)換:拓展語(yǔ)言->普通JavaScript
  • 優(yōu)化:優(yōu)化性能

安裝

cnpm i -g webpack
cnpm i -g webpack-cli
npm init
cnpm i webpack --save-dev
webpack -v

!問題:版本兼容問題導(dǎo)致安裝失敗(Cannot find module 'webpack-cli/package.json')

--解決方案
//卸載版本
cnpm uninstall webpack -g
cnpm uninstall -g webpack-dev-server
//安裝指定版本
cnpm install webpack@3.8.0 -g
cnpm install webpack-dev-server@2.9.7 -g
webpack -v

WebPack 的使用

webpack.config.js

const path = require('path');
module.exports={
    //入口
    entry:{
        entry:'./src/entry.js',
        entry2:'./src/entry2.js'
    },
    //出口
    output:{
        path:path.resolve(__dirname,'dist'),
        filename:'[name].js'
    },
    //模塊
    module:{
        ···
    },
    //插件
    plugins:[],
    //服務(wù)
    devServer:{
        ···
    }
}

服務(wù)

//1.安裝(注意版本兼容問題)
cnpm i -g webpack-dev-server --save-dev
//2.配置
./package.json
{
  ···
  "scripts": {
    "server": "webpack-dev-server",
    ···
  },
  ···
}
./webpack.config.js
const path = require('path');
module.exports={
    ···
    //服務(wù)
    devServer:{
        contentBase:path.resolve(__dirname,'dist'),
        host:'localhost',
        compress:true,
        port:1717
    }
}
//3.運(yùn)行
npm run server

loader 的使用

//1.安裝需要的loader
cnpm install style-loader --save-dev//css中的Url
cnpm install css-loader --save-dev//css中的標(biāo)簽
//2.配置
./webpack.config.js
...
module.exports={
    ...
    //模塊
    module:{
        rules:[{
            test:/\.css$/,
            use:['style-loader','css-loader']
        }]
    },
    ...
}

插件-JS壓縮

//1.安裝
-- cnpm i uglifyjs-webpack-plugin --save-dev
webpack自帶無(wú)需安裝
//2.配置
./webpack.config.js
···
const uglify =require('uglifyjs-webpack-plugin');

module.exports={
    ···
    //插件
    plugins:[
        new uglify()
    ],
    ···
}
//3.使用
npm run server

打包html文件

//1.安裝
cnpm i html-webpack-plugin --save-dev
//2.配置
···
const htmlPlugin = require('html-webpack-plugin');

module.exports={
    ···
    //插件
    plugins:[
        ···
        new htmlPlugin({
            minify:{
                removeAttrubuteQuotes:true
            },
            hash:true,
            template:'./src/index.html'
        })
    ],
    ···
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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