首页 > 其他分享 >JS之webpack

JS之webpack

时间:2024-07-24 15:21:13浏览次数:14  
标签:function exports return window JS webpack 模块 加载

目录

一、认识webpack

Webpack是一个现代的静态模块打包工具,它主要用于前端开发中的模块化打包和构建。通过Webpack,开发者可以将多个模块(包括JavaScript、CSS、图片等)进行打包,生成优化后的静态资源文件,以供在浏览器中加载和运行。

Webpack的主要功能和特点包括:

  • 1.模块化支持:Webpack将应用程序拆分为多个模块,通过模块化的方式管理和加载依赖关系。它支持CommonJS、ES module、AMD等多种模块化规范,并且能够将这些模块打包成最终的静态资源文件。
  • 2.打包和压缩:Webpack可以将多个模块打包成一个或多个最终的静态资源文件。它支持对JavaScript、CSS、图片等资源进行压缩、合并和优化,以减小文件大小,提升加载速度和性能。
  • 3.资源加载管理:Webpack可以处理各种类型的资源文件,例如JavaScript、CSS、图片、字体等。通过加载器(Loader)的配置,Webpack可以对这些资源文件进行转换和处理,使其能够被应用程序正确地引用和加载。

webpack的形式

!function(参数){加载器}([模块1,模块2,.......])
!function(参数){加载器}({"k1":模块1, "k2":模块2,.......})

1.1 webpack数组形式

!function(e) {
    var t = {};
    // 加载器  所有的模块都是从这个函数加载 执行
    function n(r) {
        if (t[r])
            return t[r].exports;
        var o = t[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return e[r].call(o.exports, o, o.exports, n),
            o.l = !0,
            o.exports
    }
// 此处的n(0)是内部的调用,我们一般是在外面使用,见下面的代码
// 因为是数组的形式,n()的参数就是数组的索引,0就是第0个索引的数据
    n(0)
}([
        function () {
            console.log('123456')
        },
        function () {
            console.log('模块2')
        },
    ])

我们一般是在外面使用,需要提升一下

// 具体位置看下面的代码完整版
window=global;
window.loader = n;

代码完整版

window=global;
!function(e) {
    var t = {};
    // 加载器  所有的模块都是从这个函数加载 执行
    function n(r) {
        if (t[r])
            return t[r].exports;
        var o = t[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return e[r].call(o.exports, o, o.exports, n),
            o.l = !0,
            o.exports
    }
    window.loader = n;
}([
        function () {
            console.log('123456')
        },
        function () {
            console.log('模块2')
        },
    ])
window.loader(0)
window.loader(1)

1.2 webpackde 对象形式

!function(e) {
    var t = {};
    //  所有的模块 都是从这个加载器 执行的  分发器
    function n(r) {
        if (t[r])
            return t[r].exports;
        var o = t[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return e[r].call(o.exports, o, o.exports, n),
        o.l = !0,
        o.exports
    }
   n(1)  // 对象 根据KEY 找模块
}({
        0: function () {
            console.log('我是模块1')
        },

        1: function () {
            console.log('我是模块2')
        }
    }
);

同数组形式-我们要在外面使用

window=global;
window.loader = n;

完整版

window=global;
!function(e) {
    var t = {};
    //  所有的模块 都是从这个加载器 执行的  分发器
    function n(r) {
        if (t[r])
            return t[r].exports;
        var o = t[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return e[r].call(o.exports, o, o.exports, n),
        o.l = !0,
        o.exports
    }
   window.loader = n;
}({
        "k1": function () {
            console.log('我是模块1')
        },

        "k2": function () {
            console.log('我是模块2')
        }
    }
);

window.loader("k1");

标签:function,exports,return,window,JS,webpack,模块,加载
From: https://www.cnblogs.com/a438842265/p/18320956

相关文章

  • 【计算机毕业设计】ssm497网上茶叶销售平台设计与开发+jsp
    计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了,让整个世界都可以即时通话和联系,极大的方便了人们的生活。所以说,网上茶叶销售平台用计算机技术来进行设计,......
  • 【计算机毕业设计】ssm495题库管理系统的设计与实现+jsp
    随着考试的增多,需要管理的试卷越来越多。现在大多数学校考试的方式采用老师出卷安排考试时间,学生参与的方式。这种方式效率低、灵活性低,每门课程的考卷组成就给老师的统计整理工作造成困难。目前,网络发展成熟,各类管理系统层出不穷,如果可以有专业的管理系统提供网上考试,则可......
  • NodeJS小饰品销售管理系统-计算机毕业设计源码21597
    基于JavaScript技术的小饰品销售管理系统设计与实现摘要在当今的数字化时代,电子商务已经成为了商业领域中不可或缺的一部分。随着消费者对于购物体验的要求越来越高,一个高效、便捷、用户友好的小饰品销售管理系统显得尤为重要。本系统旨在利用JavaScript技术,设计并实现......
  • 了解package.json中npm run命令的执行原理,以及直接运行shell命令
    了解npmrun在package.json文件中的script字段,可以定义脚本命令,通过npmrun指令运行该脚本。比如简单定义一个输出打印的shell脚本。{"script":{"hw":"echohelloworld!"}}执行npmrunhw可以看到终端上打印出了helloworld!。我们可以在很多工程项目中......
  • JS实现一个发布-订阅模式(观察者模式)
    //创建一个简单的事件中心,允许对象订阅事件、发布事件并取消订阅。//创建一个事件中心对象,IIFE,返回一个包含订阅、取消订阅和发布方法的对象constEventCenter=(function(){//存储事件及其对应的订阅者,存储事件及其对应的监听器数组constevents={}......
  • Warning formula.jws.json update failed, falling back to cached version
    Warning:formula.jws.json:updatefailed,fallingbacktocachedversion.MacOS执行服务启动命令时,显示下载失败警告,导致无法启动服务MacBook-Pro~%brewservicesstartnginx==>Downloadinghttps://formulae.brew.sh/api/formula.jws.json########......
  • 216java jsp SSM公司企业人事人力资源管理系统员工考勤休假申请人事变更考核标准结果
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 214java jsp SSM高校校园食堂订餐点餐系统(源码+文档+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 213java jsp SSM疫情期间高校师生外出请假管理系统(源码+文档+开题+任务书+运行视频+讲
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • Django 序列化程序无法将查询集序列化为 JSON
    尝试简单的Django序列化器。我使用具有特定值的queryset然后我将queryset或queryset.values()传递给序列化器。为什么会出现500错误?@csrf_protectdefgeoLookup(request,**kwargs):country=kwargs.get('Country')city=kwargs.get('Place'......