• webpack的理解


    什么是webpack?
            模块化打包机。
     
    作用:
    1、将浏览器不识别的语言转换成浏览器识别的语言 (sass Typescript .vue.....)
    2、搭建服务器
    3、语法检验
    4 压缩 合并 ......
     
    webpack的工作流程:
    1、通过一个入口文件 找到所以依赖的文件 通过loader进行打包 转换一个或者多个js文件
     
    webpack和gulp的区别
      webpack是一个模块打包机
      gulp前端自动化工具
     
    项目如何搭建:
        (纯手工搭建)
            1、src:开发阶段
            2、dist:部署阶段
            3、node_modules:安装的依赖
            4、webpack.config.js:配置文件
            5、package.json:当前所依赖文件的配置信息
     
    1、全局安装webpack
    cnpm install webpack@3.5.3 -g
     
    2、创建文件 初始化文件
    npm init -y
     
    3、局部安装wenbapack
    cnpm install webpack@3.5.3 --save-dev;
     
    4、创建src dist webpack.config.js
     
    5、在src文件夹里面写一个入口文件 index.js
     
    6、处理js需要安装的第三方包
    cnpm install --save-dev @babel/core babel-loader @babel/preset-env @babel/preset-react
     
    7、处理css所需要的loader
    cnpm install --save-dev style-loader css-loader sass-loader node-sass
     
     
    8、插件
    html-webpack-plugin
     
    cnpm install html-webpack-plugin --save-dev
     
     
    9、服务器
    cnpm install webpack-dev-server@2 -g
     
    在package.json里的script里配置:
    "dev":"webpack-dev-server --open",
     
    10、webpack.config.js配置
    const path = require("path");
    const HtmlWebpackPlugin = require("html-webpack-plugin");
    
    //定义了出口文件路径和入口文件路径
    const PATH = {
        app:path.join(__dirname,"./src/index.js"),
        build:path.join(__dirname,"./dist")
    }
    
    //webpack的配置
    module.exports = {
        entry:{
            app:PATH.app
        },
        output:{
            //entry的key值是什么name就是什么
            filename:"[name].js",
            path:PATH.build
        },
        //以下处理模块使用的一些loader
        module:{
            rules:[
                {
                    test:/.(js)$/,
                    use:{
                        loader:"babel-loader",
                        options:{
                            presets:["@babel/env","@babel/react"]
                        }
                     }
                },
                {
                    test:/.(css|scss)$/,
                    use:["style-loader","css-loader","sass-loader"]
    
                }
            ]
        },
        plugins:[
            new HtmlWebpackPlugin({
                filename:"index.html",
                template:"./index.html",
                title:"姗姗",
                arr:["黄晶晶","宋飒","马蕊","孙腾飞"]
            }),
        ]
    }
    11、柯里化函数
            柯里化是把接受多个参数的函数变换成接受一个单一参数的函数。
    function add(a,b){
        return a+b;
    }
    console.log(add(2,3))
    function add(a){
        return function(b){
            return function(c){
                return a+b+c
            }
        }
    }
    console.log(add(2)(3)(4))
     
     
     
    12、惰性函数(由科里化函数衍生出来的)
    function getStyle(obj,attr){
        if(obj.currenStyle){
            getStyle = function(obj,attr){
                return obj.currenStyle[attr]
            }
        }else{
            getStyle = function(obj,attr){
                return getComputedStyle(obj,false)[attr]
            }
        }
            return getStyle(obj,attr)
        }
    var oBox = document.getElementById("box");
    console.log(getStyle)
    getStyle(oBox,"width");
    console.log(getStyle)
  • 相关阅读:
    Apache ActiveMQ 远程代码执行漏洞 (CVE-2016-3088)案例分析
    linux 软中断过高性能优化案例
    jvm默认的并行垃圾回收器和G1垃圾回收器性能对比
    JVM性能参数优化
    一次压测中tomcat生成session释放不及时导致的频繁fullgc性能优化案例
    sed命令实现文件内容替换总结案例
    You have new mail in /var/spool/mail/root消除提示的方法
    zookeeper常用命令
    mongodb输错命令后不能删除问题
    centos环境gcc版本升级
  • 原文地址:https://www.cnblogs.com/liuqinq/p/10000939.html
Copyright © 2020-2023  润新知