webpack学习(一)

一.entrycss

entry是webpack打包的入口配置,entry对应的值能够是字符串,数组,对象;单入口能够使用字符串、数组、对象,多入口配置则必须使用对象的方式html

二.outputvue

output是webpack打包的出口配置,能够指定文件输出的路径path和文件名filename;多入口起点的时候,出口文件名配置须要以占位符来确保每一个文件具备惟一的名称,eg:filename='[name].js'html5

三.modewebpack

模式配置告知webpack使用相应的配置优化,支持development,production;webpack打包的时候能够使用webpack --mode=production进行参数传递。

clipboard.png

四.loaderes6

loader 用于对模块的源代码进行转换。webpack默认只支持js,json文件格式。对于css、es六、图片、vue、jsx等webpack都不能识别,全部须要引入对应的loader对对应格式的文件进行转换以便webpack来识别。loader支持链式调用,调用顺序由下到上,由右到左web

五.pluginsnpm

插件目的在于解决 loader 没法实现的其余事。

六.webpack项目搭建(vue)json

1)npm i webpack webpack-cli -D安装webpack依赖。
安装完了能够对js文件进行解析,可是却不能解析es6,要解析es6就须要借助babel。

2)npm babel-loader @babel/core @babel/preset-env -D安装babel对应的依赖。
在目录下建立.babelrc文件,配置preset
{
    "presets": [
        "@babel/preset-env"
    ]
}

配置babel-loader
module: {
    rules: [
        {
            test: /\.js$/,
            use: 'babel-loader'
        }
    ]
}

3)npm i css-loader style-loader less less-loader -D 安装css对应loader
{
    test:/\.css$/,
    use: [
        'style-loader',
        'css-loader'
    ]
},
{
    test: /\.less$/,
    use: [
        'style-loader',
        'css-loader',
        'less-loader',
    ]
} 
这个方式css和js是编译打包到一个文件里面,css样式以style的方式插入head中,
可是大多数状况咱们是但愿js和css分别独立打包,这时咱们就须要引入插件
mini-css-extract-plugin把css样式抽离出来。

npm i mini-css-extract-plugin -D安装插件。

在webpack.config.js引入

const MiniCssExtractPlugin = require('mini-css-extract-plugin');

loader就不能使用style-loader需引用MiniCssExtractPlugin.loader

plugins: [
   new MiniCssExtractPlugin({
       filename: '[name].css'
    })
]

npm i optimize-css-assets-webpack-plugin -D引入css压缩插件

const OptimizeCss = require('optimize-css-assets-webpack-plugin');

配置css压缩plugins
new OptimizeCss({
  assetNameRegExp: /\.css$/g,
  cssProcessor: require('cssnano'),
}),

4)npm i vue-loader vue-template-compiler -D安装vue依赖loader
{
    test: /\.vue$/,
    use: 'vue-loader'
}

引入vue-loader plugin:

const VueLoaderPlugin = require('vue-loader/lib/plugin');
new VueLoaderPlugin(),

5)npm i html-webpack-plugin -D 安装html的插件

const HtmlWebpackPlugin = require('html-webpack-plugin');

new HtmlWebpackPlugin({
    template: './src/index.html',
    filename: 'index.html', // 打包以后的html
    chunks: ['app'], // 依赖的文件
    inject: true,
    minify: {
        html5: true,
        removeAttributeQuotes: true,
        collapseWhitespace: true,
    }
})

6)热更新
相关文章
相关标签/搜索