• webpack--前端自动化工具


    一、下载与安装

    //全局安装webpack (不推荐)
    npm i webpack -g
    npm i webpack-cli -g
    
    //局部安装(推荐)
    npm i webpack -D
    npm i webpack-cli -D
    
    npx webpack -v 查看webpack的版本号

    注:也可以使用cnpm安装。

    二、webpack.config.js文件的配置

    //webpack的配置文件,文件名不能改!!!
    //
    万一想改的话,就是 npx wenpack --config webpack.con.js 后面的是更改后的名称 const path=require('path') //引入此模块的目的就是,配置出口文件和入口文件的根路径; module.exports={ //'development' or 'production' 开发环境配置,第一个是开发环境,production是生产环境!! mode:"development",
          devtool:'cheap-eval-source-map',  //映射错误
        //配置默认的出口文件/入口文件
        //首先找到入口文件;
        entry:{   //entry入口文件,一个入口文件的话直接写,别写main对象;
            main:path.join(__dirname,'./index.js')
        },
        //出口文件;
        output:{
            filename:'bundle.js',  //出口文件的名,随意;
            path:path.join(__dirname,'./dist')
        },
        //module--模块解析,webpack因为只认识js
        module:{
            rules:[{
                //正则表达式匹配
                test:/.css$/, 
                use:[
                    "style-loader",  //语法解析;
                    "css-loader"    //解析文件依赖;因为可能会有多个css文件
                ]
            },
            {
                test:/.styl$/ ,    //styl文件的配置;cnpm i stylus-loader stylus -D
                use:[
                    "style-loader",
                    "css-loader",
                    "stylus-loader" ,  //解析成正常css;
                    //注意顺序规律,从下而上;不能乱;
                ]
            },
            //图片解析;
            {
                test:/.(jpg|png|svg|gif|jpeg)$/,
                use:[
                    {
                        loader:"url-loader",   //解析图片和解析文件;
                        //cnpm i url-loader file-loader -D
                        //url-loader基于file-loader -D
                        options:{    //图片的配置项
                            limit:10240
    //用来控制当前的文件大小,如果当前文件大小超过所设置的文件大小,会把文件生成一个新的文件插入到dist下,如果比当前所设置的小,会放到打包出来的文件下,以bate64位的形式;
                        }
                    }
                ]
            },
        ]
        }
    }

    注意:css-loader style-loader 这些都是需要安装的

     三、ES6转ES5   (babel中文文档)设置----webpack

    const path = require('path');
    //引入HTML插件;
    const HtmlWebPackplugin = require('html-webpack-plugin')
    //下载:npm install --save-dev html-webpack-plugin
    const { CleanWebpackPlugin } = require('clean-webpack-plugin')
    //下载:cnpm i clean-webpack-plugin -D  会随着webpack版本的改变,配置方法也会改变。
    module.exports = {
        mode: 'development',
        devtool:'cheap-eval-source-map',  //映射错误
        entry: {
            main: path.join(__dirname, 'index.js'),
        },
        output: {
            filename: 'es6.js',
            path: path.join(__dirname, './dist'),
        },
        //模块解析;
        module: {
            rules: [
                {
                    test: /.css$/,
                    use: [
                        "style-loader",
                        "css-loader"
                    ]
                },
      //es6转es5
    //安装:npm install --save-dev babel-loader @babel/core 
         //npm install @babel/preset-env --save-dev
         //npm install --save @babel/polyfill  彻底转换成es5;还需单独在根目录文件下建一个 .babelrc 文件,见四配置,最后在入口文件(例如:index.js)还需引入 require("@babel/polyfill");  //哪里需要转就在哪里引入!!
                {
                    test: /.js$/,
                    exclude: /node_modules/,
                    loader: "babel-loader"
                }
            ]
        },
        //插件,是一个数组。
        plugins: [
            new HtmlWebPackplugin({
                template: "./index.html"  //依那个HTML文件为模板,就在此写那个文件
            }),
            new CleanWebpackPlugin()
            //注意插件的先后顺序!!!不能变;
        ]
    }

     四、 .babelrc 文件的配置

    {
        "presets": [["@babel/preset-env",{
            "useBuiltIns": "usage"   //在哪用就在那里转;
        }]]
      }
    直接复制到该文件里面即可!
  • 相关阅读:
    css如何使背景图片水平居中
    HTML特殊符号显示技巧
    自定义jquery插件
    bootstrap学习以及其插件
    自定义checkbox样式
    maven java.lang.OutOfMemoryError:PermGEn space
    Java多线程学习(吐血超详细总结)
    Maven .m2 setting.xml配置
    html a标签打开邮件
    File 类
  • 原文地址:https://www.cnblogs.com/gzw-23/p/11824106.html
Copyright © 2020-2023  润新知