2020/7/13 webpack学习

 

webpack概念

       前端的一个项目构建工具,他是基于Node.js 开发出来的前端工具,借助它可以完美的实现资源的合并,打包,压缩,混淆等功能

wepack 安装:

全局安装:npm install webpack -g

步骤:

 npx webpack  经过webpack打包输出文件

 

配置好了快捷指令就可以直接的运行快捷指令

webpack --config webpack.config.js   ==  npm run build

配置服务器的开发依赖:

yarn add webpack-dev-server -D

 

npx webpack-dev-server 内存中打包生成  达=打包完成就可以用localhost访问

 

 

 

npm run build  是编译 webpack.config.js文件

 

 

将index.html文件压缩,因为webpack默认的是处理js模块

引入css文件 进行打包处理的时候会报错

 

所以设置load

load 执行顺序默认是从右向左 从上到下,所以右边是css.load 左边是style.load

安装指令:

 

自己在html里面的样式优先级没打包后的样式高  添加insertAt  (会报错已经不支持了)

 

处理less文件 就得修改下配置文件,并应该提前安装less-loader

安装指令 作用:由less-loader去将less转换

如果是sass,就yarn add sass sass-loader -D

 

因为只有一个入口文件,所以其他文件需要导入一下

 

yarn 与 npm区别:

yarn指令安装更快,他是同步安装所有任务,npm是一个个的安装

 

let path = require('path');

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

module.exports = {

    devServer: { //开发服务器的配置

        port: 3000, //可以修改端口号

        progress: true, //打包时候显示进度条

        contentBase: './dist', //刚进来的时候直接进入build2文件夹

        compress: true, //启动Gzip压缩



    },

    mode: "development",

    entry: './src/index.js', //出口 不是从改文件到

    output: {

        path: path.resolve(__dirname, 'dist'),

        filename: 'bundle.[hash:4].js' //打包后的文件名,每次build产生不同的文件 防止覆盖 加数字可以控制哈希戳的位数

    },

    plugins: [ //数组,放着所有webpack插件

        new HtmlWebpackPlugin({

            template: './src/index.html',

            filename: 'index.html', //打包后的文件

            minify: {

                removeAttributeQuotes: true, //去掉双引号

                collapseWhitespace: true, //将打包出来的html文件变成一行,也就是dist下面的index.html

            },

            hash: true,

        }),

        new MiniCssExtractPlugin({

            filename:'main.css'

        })

    ],

    module: {

        //模块

        rules: [ //规则  css-load   解析@import 这种语法 将多个css文件合并

            //       style-load 把css插入到head标签中

            //   多个load 需要数组 []



            // { test: /\.css$/, use: 'css-load'} 改为数组

            {

                test: /\.css$/,

                use: [{

                    loader: 'style-loader',

                    // options: {

                    //     insertAt: 'top'

                    // }

                }, 'css-loader']

            }, //以对象的形式写,可以多传点东西

            {

                test: /\.less$/,

                use: [{

                        loader: 'style-loader',

                        // options: {

                        //     insertAt: 'top'

                        // }

                    }, 'css-loader', //@import  解析@import

                    'less-loader' //把less->css       

                ]

            } //以对象的形式写,可以多传点东西

        ]

    }

}

 

抽离css文件

yarn add mini-css-extract-plugin -D 

导入插件

 

 

 

将css less文件里面的css抽离出来成为一个css文件,一个插件就是一个类,当然也可以多抽离出来几个类然后 为所有css抽离出一个main.css  所有less生成一个main1.css  或者抽离到一起也行

 

生成的mian.css就是所有的css less文件抽离出来的结果

 

自动给css样式加浏览器前缀

指令:

yarn add postcss-loader autoprefixer -D

 

 

gulimall_pms 商品 drop table if exists pms_attr; drop table if exists pms_attr_attrgroup_relation; drop table if exists pms_attr_group; drop table if exists pms_brand; drop table if exists pms_category; drop table if exists pms_category_brand_relation; drop table if exists pms_comment_replay; drop table if exists pms_product_attr_value; drop table if exists pms_sku_images; drop table if exists pms_sku_info; drop table if exists pms_sku_sale_attr_value; drop table if exists pms_spu_comment; drop table if exists pms_spu_images; drop table if exists pms_spu_info; drop table if exists pms_spu_info_desc; /*==============================================================*/ /* Table: pms_attr */ /*==============================================================*/ create table pms_attr ( attr_id bigint not null auto_increment comment '属性id', attr_name char(30) comment '属性名', search_type tinyint comment '是否需要检索[0-不需要,1-需要]', icon varchar(255) comment '属性图标', value_select char(255) comment '可选值列表[用逗号分隔]', attr_type tinyint comment '属性类型[0-销售属性,1-基本属性,2-既是销售属性又是基本属性]', enable bigint comment '启用状态[0 - 禁用,1 - 启用]', catelog_id bigint comment '所属分类', show_desc tinyint comment '快速展示【是否展示在介绍上;0-否 1-是】,在sku中仍然可以调整', primary key (attr_id) ); alter table pms_attr comment '商品属性'; /*==============================================================*/ /* Table: pms_attr_attrgroup_relation */ /*==============================================================*/ create table pms_attr_attrgroup_relation ( id bigint not null auto_increment comment 'id', attr_id bigint comment '属性id', attr_group_id bigint comment '属性分组id', attr_sort int comment '属性组内排序', primary key (id) ); alter table pms_attr_attrgroup_relation comment '属性&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太想进步了

新人菜鸡一枚,相互学习进步啊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值