WebPack

作者: kunlingou | 来源:发表于2019-01-17 21:39 被阅读0次

WebPack(模块打包机)

作用

  • 打包:多个JavaScript->一个文件
  • 转换:拓展语言->普通JavaScript
  • 优化:优化性能

安装

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

!问题:版本兼容问题导致安装失败(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:[],
    //服务
    devServer:{
        ···
    }
}

服务

//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={
    ···
    //服务
    devServer:{
        contentBase:path.resolve(__dirname,'dist'),
        host:'localhost',
        compress:true,
        port:1717
    }
}
//3.运行
npm run server

loader 的使用

//1.安装需要的loader
cnpm install style-loader --save-dev//css中的Url
cnpm install css-loader --save-dev//css中的标签
//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自带无需安装
//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'
        })
    ],
    ···
}

相关文章

网友评论

      本文标题:WebPack

      本文链接:https://www.haomeiwen.com/subject/vauwdqtx.html