• 关于

    模块化

    的搜索结果

回答

ASP.NET 的 Bundle 就解决了这一个问题,通过 Bundle 的方式来整合资源。Webpack 把 css 和 js 都当作模块来处理,也很好的解决了这个问题(当然会带来一些其它问题,另说)。参照目前 js 常用的工具框架,gulp、grunt、甚至包括 TypeScript、Babel,这些工具都是为了模块化 JS 常用的,但归根到底,是基于一种思想:模块化模块化之后就存在一个管理和引用的问题,于是很多思想就参照非解释性语言的方式,把过程解成:开发→构建(打包)JS 的模块化工具很多,上面已经提到了,上网搜一搜也能找到大堆的 JS 模块化方面的内容。CSS 的模块化,在上面有些工具也支持,但是另外还有 CSS 预处理器,比如 LESS,SASS 等。总的来说就是:模块化开发→构建(打包)发布

a123456678 2019-12-02 02:04:02 0 浏览量 回答数 0

回答

ASP.NET 的 Bundle 就解决了这一个问题,通过 Bundle 的方式来整合资源。Webpack 把 css 和 js 都当作模块来处理,也很好的解决了这个问题(当然会带来一些其它问题,另说)。参照目前 js 常用的工具框架,gulp、grunt、甚至包括 TypeScript、Babel,这些工具都是为了模块化 JS 常用的,但归根到底,是基于一种思想:模块化模块化之后就存在一个管理和引用的问题,于是很多思想就参照非解释性语言的方式,把过程解成:开发→构建(打包)JS 的模块化工具很多,上面已经提到了,上网搜一搜也能找到大堆的 JS 模块化方面的内容。CSS 的模块化,在上面有些工具也支持,但是另外还有 CSS 预处理器,比如 LESS,SASS 等。总的来说就是:模块化开发→构建(打包)发布

a123456678 2019-12-02 02:19:38 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 数据传输服务的实时同步功能能够实现任何两个RDS实例之间的增量数据实时同步。2016.8月份后,将陆续支持OLTP->OLAP的数据实时同步。 同步链路的创建过程包括:(1) 同步初始化, 同步初始化主要将源实例的历史存量数据在目标实例初始化一份。(2) 增量数据实时同步, 当初始化完成后进入两边增量数据实时同步阶段,在这个阶段,DTS会实现源实例跟目标实例之间数据动态同步过程。 增量数据实时同步过程,DTS的底层实现模块主要包括:(1) 日志读取模块日志读取模块从源实例读取原始数据,经过解析、过滤及标准格式化,最终将数据在本地持久化。日志读取模块通过数据库协议连接并读取源实例的增量日志。如果源DB为RDS MySQL,那么数据抓取模块通过Binlog dump协议连接源库。 (2) 日志回放模块日志回放模块从日志读取模块中请求增量数据,并根据用户配置的同步对象进行数据过滤,然后在保证事务时序性及事务一致性的前提下,将日志记录同步到目标实例。DTS实现了日志读取模块、日志回放模块的高可用,DTS容灾系统一旦检测到链路异常,就会在健康服务节点上断点重启链路,从而有效保证同步链路的高可用。

2019-12-01 23:09:36 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

从Java 8迁移到Java 11比大多数升级更棘手。以下是这个过程的一些注意事项。模块在Java 9中Java引入了历史上最大的变化之一 是模块,但:不必将你自己的代码模块化以后才能升级到Java 11。在大多数情况下,放在类路径classpath上的代码能继续在Java 9及更高版本上有效被发现和运行,但是如果将模块放置类路径上会被忽略,这对于库包发布者来说非常糟糕,但对于应用程序开发者是个好事情。因此,在升级到Java 11时尽可能地先不用模块化,而将自己的应用程序转换为Java模块应该等待时机,等待大规模开源的依赖库包真正采用模块化后的几年内才开始实施模块化,现在,尝试模块化很痛苦,因为你的依赖包很少是模块化的。(如果将程序模块化的主要原因是由于使用jlink能缩小JDK的大小,也完全不需要模块化来实现这个目标 – 只需使用Maven创建一个 jar- with-dependencies,其中module-info不配置require,不配置export( no-requires和no-exports )。删除了JDK的部分内容JDK的有关Java EE和Corba的一部分被删除,它们不再适合JDK,或者可以在其他地方维护。如果您使用Corba,那么几乎没有人可以帮助你,但是,如果你使用Java EE模块,那么在大多数情况下,对已删除代码的修复应该很简单。只需添加适当的Maven即可。在Java客户端方面,已经删除了Java WebStart ,替代方案会更加棘手,请考虑使用Getdown或Update4J。不安全和朋友多年来, Sun和Oracle一直在告诉开发人员不要使用sun.misc.Unsafe和其他尖端的JDK API。很长一段时间,Java 9将要删除这些,但这实际上从未发生过。但是在Java 11,首次访问受限API时,你可能会收到警告,此警告仅打印一次。这是一个有用的提醒,你的代码或依赖正在做一些“顽皮”的事情,需要在某个时候修复。您还会发现Java 11有许多专门设计的新API,以避免使用Unsafe人需要,如果你使用的是“非法”API,请优先调查这些新API,例如, Base64, MethodHandles.privateLookupIn, MethodHandles.Lookup.defineClass, StackWalker 和Variable Handles。工具和图书馆模块化和新的六个月发布周期这两个机制共同对工具和库开发人员使用产生了真正的影响,一些项目已经能够跟上,有些人在努力,有些人失败了。升级到Java 11时,关键任务是将所有依赖项更新为最新版本,如果自Java 9问世以来这些依赖项还没有发布新版本,那么这些依赖可能需要额外的关注或测试,确保您也更新了IDE。但是,不仅需要更新应用程序的依赖项,Maven也是如此,大多数Maven插件已将主要版本更改为v3.x,将Maven本身升级到v3.5.4也是有益的。可悲的是,核心maven团队规模很小,因此仍有一些问题需要解决,但是,如果你的Maven构建非常合理且简单,那么通常应该没问题。但请注意,将插件从v2.x升级到v3.x可能需要更改配置,而不仅仅是与模块相关联。例如,Maven Javadoc插件已重命名该argLine属性。需要注意的一个关键点是Maven使用模块进行操作的方式,当Maven编译器或surefire插件找到一个模块化的jar文件(即带有module-info.class)时,它可以将该jar放在模块路径而不是类路径上,因此,即使你可能打算只在类路径上运行你的应用程序,Maven可能部分地在类路径上编译和测试代码,而另外一部分会在模块路径上编译代码,在目前,没有什么可以搞定这个问题。有时你的构建需要更大的更改。例如,需要将Findbugs更改为SpotBugs,并将Cobertura改为JaCoCo。这些构建更改可能需要一些时间 。总结当我完成迁移之后,我的结论是痛苦主要在于维护与Java 8的兼容性,将应用程序全部只到Java 11应该更简单,因为不需要与Java 8保持联系。

hiekay 2019-12-02 01:39:22 0 浏览量 回答数 0

回答

模块化主要是用来抽离公共代码,隔离作用域,避免变量冲突等。 IIFE: 使用自执行函数来编写模块化,特点:在一个单独的函数作用域中执行代码,避免变量冲突。 (function(){ return { data:[] } })() AMD: 使用requireJS 来编写模块化,特点:依赖必须提前声明好。 define('./index.js',function(code){ // code 就是index.js 返回的内容 }) CMD: 使用seaJS 来编写模块化,特点:支持动态引入依赖文件。 define(function(require, exports, module) { var indexCode = require('./index.js'); }); CommonJS: nodejs 中自带的模块化。 var fs = require('fs'); UMD:兼容AMD,CommonJS 模块化语法。 webpack(require.ensure):webpack 2.x 版本中的代码分割。 ES Modules: ES6 引入的模块化,支持import 来引入另一个 js 。 import a from 'a';

九旬 2020-05-24 11:24:39 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 如上图所示,数据订阅支持实时拉取RDS实例的增量日志,用户可以通过DTS SDK来数据订阅服务端订阅增量日志,根据业务需求,实现数据定制化消费。 DTS服务端的日志拉取模块主要实现从数据源抓取原始数据,并通过解析、过滤、标准格式化等流程,最终将增量数据在本地持久化。 日志抓取模块通过数据库协议连接并实时拉取源实例的增量日志。例如源实例为RDS For MySQL,那么数据抓取模块通过Binlog dump协议连接源实例。 DTS实现了日志拉取模块及下游消费SDK的高可用。 DTS容灾系统一旦检测到日志拉取模块出现异常,就会在健康服务节点上断点重启日志拉取模块,保证日志拉取模块的高可用。 DTS支持在服务端实现下游SDK消费进程的高可用。用户同时对一个数据订阅链路,启动多个下游SDK消费进程,服务端同时只向一个下游消费推送增量数据,当这个消费进程异常后,服务端会从其他健康下游中选择一个消费进程,向这个消费进程推送数据,从而实现下游消费的高可用。

2019-12-01 23:09:36 0 浏览量 回答数 0

回答

答案: AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。 CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。 AMD 是提前执行,CMD 是延迟执行。 AMD 推荐的风格通过返回一个对象做为模块对象,CommonJS 的风格通过对 module.exports 或 exports 的属性赋值来达到暴露模块对象的目的。 define(function(require, exports, module) { // 模块代码 });

kun坤 2019-12-02 03:23:23 0 浏览量 回答数 0

问题

数据传输服务DTS的产品架构

云栖大讲堂 2019-12-01 21:23:54 1044 浏览量 回答数 0

回答

技术原理 数据迁移 数据传输服务DTS在数据迁移的过程中,通过数据的全量迁移和增量迁移结合,迁移的源端数据库无需在迁移过程中停机,应用服务不会因为数据迁移出现中断。 数据迁移的技术原理如下图所示。 数据迁移过程: 结构迁移:将源实例中的结构对象定义一键迁移至目标实例。 全量迁移:源实例中的历史存量数据迁移至目标实例。 增量数据迁移:全量迁移的同时进行增量数据拉取迁移,保障被迁移数据的完整性和一致性。 数据迁移 阿里云数据迁移支持: 多种迁移类型:结构对象迁移、全量数据迁移以及增量数据迁移。 不停服迁移,迁移过程需要经历: 结构对象迁移 全量迁移 增量数据迁移 通过有效的规划和演练,整个数据迁移的中断时间可以缩短至应用流量的切换时间,从而实现秒级切换。 数据订阅 数据订阅支持实时拉取RDS实例的增量日志,用户可以通过DTS SDK来数据订阅服务端订阅增量日志,根据业务需求,实现数据定制化消费。 地持久化。 日志抓取模块通过数据库协议连接并实时拉取源实例的增量日志。例如源实例为RDS For MySQL,那么数据抓取模块通过Binlog dump协议连接源实例。 数据同步 数据传输服务的实时同步功能能够实现任何两个RDS实例之间的增量数据实时同步,并支持RDS实例到ADS和ODPS等分析型数据库的数据实时同步。 同步链路的创建过程包括: 1. 同步初始化, 同步初始化主要将源实例的历史存量数据在目标实例初始化一份。 2. 增量数据实时同步, 当初始化完成后进入两边增量数据实时同步阶段,在这个阶段,DTS会实现源实例跟目标实例之间数据动态同步过程。 增量数据实时同步过程,DTS的底层实现模块主要包括: 1. 日志读取模块 2. 日志读取模块从源实例读取原始数据,经过解析、过滤及标准格式化,最终将数据在本地持久化。日志读取模块通过数据库协议连接并读取源实例的增量日志。如果源DB为RDS MySQL,那么数据抓取模块通过Binlog dump协议连接源库。 3. 日志回放模块 4. 日志回放模块从日志读取模块中请求增量数据,并根据用户配置的同步对象进行数据过滤,然后在保证事务时序性及事务一致性的前提下,将日志记录同步到目标实例。 DTS实现了日志读取模块、日志回放模块的高可用,DTS容灾系统一旦检测到链路异常,就会在健康服务节点上断点重启链路,从而有效保证同步链路的高可用。

剑曼红尘 2020-03-23 13:53:47 0 浏览量 回答数 0

回答

RPC,远程调用控制 原理: 包括几个组件,服务端 、客户端、网络协议处理模块、编解码模块、序列化反序列化模块、服务端代理模块。 网络协议处理,主要解决,能够实现网络调用,编解码、序列化反序列化,都是对消息的处理,服务端客户端,就是调用的双方,代理,主要是公开一个代理人,不至于与服务端调用,做进一步保护

huc_逆天 2019-12-02 03:11:16 0 浏览量 回答数 0

问题

j2ee项目如何模块化或者说,接口化开发?

小旋风柴进 2019-12-01 20:04:55 1206 浏览量 回答数 2

回答

一般情况下,建议采用商品和活动分表记录,然后通过一张关系表来建立联系,这样不管从商品找活动还是从活动找商品都会比较方便。对于近期活动需要快速读取的情况,甚至可以针对活动单独建立缓存数据,以提高读取效率。商品,活动,限购都是需要记录的事实。关键问题是“限购”应该怎样表示。由于限购本身还可能包含其他属性,比如限购日期等等,所以不是单单一个关联表(多对多关系)就能解决的。有两种方法可以记录限购:1)记录不限购的商品、活动2)记录限购的商品活动如果限购的商品活动数量相对较小,方法2)更合适。Product (ProductId, ...)Activity (ActivityId, ...)PurchaseRestriction (ProductId, ActivityId, StartDate, EndDate,...)你的疑问:这张映射表,属于哪个模块去维护商品、活动不是相互独立的,PurchaseRestriction 恰恰表示了它们之间的联系。PurchaseRestriction 既跟Product相关,又跟Activity相关。不是简单的“谁的属性”。很多人设计class时使用循环引用,比如,Product 拥有 RestrictedActivities 集合,Activity 拥有 RestrictedProducts 集合。你心里也有类似的疑问,一方面觉得限购是一个事实,只应该放在一个地方;另一方面,感觉限购既是Product的属性,又是Activity的属性。我觉得,这是面向对象的一个缺点,“对象拥有属性,属性必须属于某个对象”这个思想的根源是认为所有东西都是树状结构的。这跟树形数据库犯了同样的错误,后来出现网络数据库。网络数据库可以表达复杂的结构,但是过于复杂。关系数据库的出现,解决了树形数据库和网络数据库的问题。关系数据库是基于集合论和一阶谓词逻辑的模型,可以完美地表达各种结构。"模块化"当然很好,合理的模块化减少了程序各模块之间的耦合。但是,一个系统最大的耦合往往是程序和数据的耦合。数据的结构变了,程序必须跟着变。因此,规范的数据库设计比应用程序的模块化更重要。你把商品和活动分到不同的模块,一方面提高了抽象级别,模块化,另一方面割裂了它们的联系。虽然模块多了,但模块间的交互更复杂了。你的问题没有完美的答案,有3个解决方案:a) 商品模块去维护b) 活动模块去维护c) 单独的模块去维护。上面提到的(商品是否能参加活动,商品限购属性),我觉得第一个是可以归为商品固有属性,第二个可能通过一张映射表来记录(因为限购商品毕竟是少数)"商品是否能参加活动"可以由PurchaseRestriction推导出,不需要这样的属性。在程序里,也许有某个类,它有一个属性 CanTakePartInActivity. 但是数据库不能这样设计。

蛮大人123 2019-12-02 02:03:45 0 浏览量 回答数 0

问题

什么是css模块化

云计算小粉 2019-12-01 19:51:37 395 浏览量 回答数 1

问题

介绍模块化发展历程 #前端面试

九旬 2020-05-23 13:51:41 4 浏览量 回答数 1

问题

模块化怎么做?

kun坤 2019-12-01 22:06:06 6 浏览量 回答数 1

问题

高稳定性高并发全平台社交聊天IM对外合作支持源码

xdrcft 2019-12-01 21:59:19 2270 浏览量 回答数 0

问题

模块化开发怎么做?

剑曼红尘 2020-04-04 10:14:58 0 浏览量 回答数 1

问题

模块化开发怎么做?

kun坤 2019-12-01 22:06:02 25 浏览量 回答数 1

问题

为什么要使用模块化?

景凌凯 2020-03-18 22:34:26 0 浏览量 回答数 1

问题

可视化搭建,自定义脚本模块怎么与其它模块交互?

总是这么笨 2019-12-01 22:05:52 1810 浏览量 回答数 1

回答

我对模块的理解是,一个模块是实现一个特定功能的一组方法。在最开始的时候,js 只实现一些简单的功能,所以并没有模块的概念 ,但随着程序越来越复杂,代码的模块化开发变得越来越重要。 由于函数具有独立作用域的特点,最原始的写法是使用函数来作为模块,几个函数作为一个模块,但是这种方式容易造成全局变量的污 染,并且模块间没有联系。 后面提出了对象写法,通过将函数作为一个对象的方法来实现,这样解决了直接使用函数作为模块的一些缺点,但是这种办法会暴露所 有的所有的模块成员,外部代码可以修改内部属性的值。 现在最常用的是立即执行函数的写法,通过利用闭包来实现模块私有作用域的建立,同时不会对全局作用域造成污染。

剑曼红尘 2020-04-04 10:15:13 0 浏览量 回答数 0

回答

你把$(function(){})初始化代码放在不同的js中在不同的页面引入这个js文件例如A页面,Ainit.js B页面 Binit.js同时将不同的模块按页面划分,每个页面min自己需要的moduleA页面 <script src="../script/jquery-2.1.3.min.js"></script> <script src="../script/AModule.js"></script> <script src="../script/Ainit.js"></script> B页面 <script src="../script/jquery-2.1.3.min.js"></script> <script src="../script/AModule.js"></script> <script src="../script/Ainit.js"></script> $(function(){})是用来执行初始化工作,执行页面上DOM元素事件绑定使用的而不是通过它了模块化,$().on()事件绑定要放在和页面DOM相关的模块中 你可以把业务相同的逻辑封装在一个业务模块(LogicModule)中,和页面DOM相关的逻辑,如事件绑定,封装在DOM模块(ViewModule)中不同的模块通过第三者,例如自定义事件执行数据通讯,或者再ViewModule中引入LogicModule处理,但是不要在LogicModule中引入ViewModule

西秦说云 2019-12-02 02:37:20 0 浏览量 回答数 0

问题

开启伪静态化需空间环境配置开启mod_rewrite模块,帮个忙开启下

放鹤山人 2019-12-01 18:50:24 100 浏览量 回答数 1

回答

Context模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。Context模块继承了Beans的特性,为Spring核心提供了大量扩展,添加了对国际化(例如资源绑定)、事件传播、资源加载和对Context的透明创建的支持。Context模块同时也支持J2EE的一些特性,例如EJB、JMX和基础的远程处理。ApplicationContext接口是Context模块的关键。

星尘linger 2020-04-12 19:58:38 0 浏览量 回答数 0

问题

服务化后模块之间的数据调用是怎么做的?http接口?RPC?还是直接读数据库?

wifidoor 2019-12-01 19:44:59 1470 浏览量 回答数 1

问题

Python中用来处理可视化视图的模块是()【每日挑战】7.15

剑曼红尘 2020-07-16 15:05:39 0 浏览量 回答数 1

问题

用webpack模块化后,如何使用 jsonp?

杨冬芳 2019-12-01 20:08:38 1174 浏览量 回答数 1

回答

npm 模块安装机制 发出npm install命令查询node_modules目录之中是否已经存在指定模块 若存在,不再重新安装若不存在npm 向 registry 查询模块压缩包的网址下载压缩包,存放在根目录下的.npm目录里解压压缩包到当前项目的node_modules目录 npm 实现原理 输入 npm install 命令并敲下回车后,会经历如下几个阶段(以 npm 5.5.1 为例): 执行工程自身 preinstall 当前 npm 工程如果定义了 preinstall 钩子此时会被执行。 确定首层依赖模块 首先需要做的是确定工程中的首层依赖,也就是 dependencies 和 devDependencies 属性中直接指定的模块(假设此时没有添加 npm install 参数) 工程本身是整棵依赖树的根节点,每个首层依赖模块都是根节点下面的一棵子树,npm 会开启多进程从每个首层依赖模块开始逐步寻找更深层级的节点。 获取模块,获取模块是一个递归的过程,分为以下几步: 获取模块信息。在下载一个模块之前,首先要确定其版本,这是因为 package.json 中往往是 semantic version(semver,语义化版本)。此时如果版本描述文件(npm-shrinkwrap.json 或 package-lock.json)中有该模块信息直接拿即可,如果没有则从仓库获取。如 packaeg.json 中某个包的版本是 ^1.1.0,npm 就会去仓库中获取符合 1.x.x 形式的最新版本。获取模块实体。上一步会获取到模块的压缩包地址(resolved 字段),npm 会用此地址检查本地缓存,缓存中有就直接拿,如果没有则从仓库下载。查找该模块依赖,如果有依赖则回到第1步,如果没有则停止。 模块扁平化(dedupe) 上一步获取到的是一棵完整的依赖树,其中可能包含大量重复模块。比如 A 模块依赖于 loadsh,B 模块同样依赖于 lodash。在 npm3 以前会严格按照依赖树的结构进行安装,因此会造成模块冗余。 从 npm3 开始默认加入了一个 dedupe 的过程。它会遍历所有节点,逐个将模块放在根节点下面,也就是 node-modules 的第一层。当发现有重复模块时,则将其丢弃。 这里需要对重复模块进行一个定义,它指的是模块名相同且 semver 兼容。每个 semver 都对应一段版本允许范围,如果两个模块的版本允许范围存在交集,那么就可以得到一个兼容版本,而不必版本号完全一致,这可以使更多冗余模块在 dedupe 过程中被去掉。 比如 node-modules 下 foo 模块依赖 lodash@^1.0.0,bar 模块依赖 lodash@^1.1.0,则 ^1.1.0 为兼容版本。 而当 foo 依赖 lodash@^2.0.0,bar 依赖 lodash@^1.1.0,则依据 semver 的规则,二者不存在兼容版本。会将一个版本放在 node_modules 中,另一个仍保留在依赖树里。 举个例子,假设一个依赖树原本是这样: node_modules -- foo ---- lodash@version1 -- bar ---- lodash@version2 假设 version1 和 version2 是兼容版本,则经过 dedupe 会成为下面的形式: node_modules -- foo -- bar -- lodash(保留的版本为兼容版本) 假设 version1 和 version2 为非兼容版本,则后面的版本保留在依赖树中: node_modules -- foo -- lodash@version1 -- bar ---- lodash@version2 安装模块 这一步将会更新工程中的 node_modules,并执行模块中的生命周期函数(按照 preinstall、install、postinstall 的顺序)。 执行工程自身生命周期 当前 npm 工程如果定义了钩子此时会被执行(按照 install、postinstall、prepublish、prepare 的顺序)。 最后一步是生成或更新版本描述文件,npm install 过程完成。

九旬 2020-05-24 12:27:05 0 浏览量 回答数 0

回答

补充楼下: 使用模块:原理,python会生成pyc文件给解释器,解释执行。 所以模块的实例只会有一个。 在模块中实例化。

游客aasf2nc2ujisi 2019-12-02 03:13:03 0 浏览量 回答数 0

回答

Webpack 的运⾏流程是⼀个串⾏的过程,从启动到结束会依次执⾏以下流程: 初始化参数:从配置⽂件和 Shell 语句中读取与合并参数,得出最终的参数;开始编译:⽤上⼀步得到的参数初始化 Compiler 对象,加载所有配置的插件,执⾏对象的 run ⽅法开始执⾏编 译;确定⼊⼝:根据配置中的 entry 找出所有的⼊⼝⽂件;编译模块:从⼊⼝⽂件出发,调⽤所有配置的 Loader 对模块进⾏翻译,再找出该模块依赖的模块,再递归本步骤 直到所有⼊⼝依赖的⽂件都经过了本步骤的处理;完成模块编译:在经过第4步使⽤ Loader 翻译完所有模块后,得到了每个模块被翻译后的最终内容以及它们之间的 依赖关系;输出资源:根据⼊⼝和模块之间的依赖关系,组装成⼀个个包含多个模块的 Chunk,再把每个 Chunk 转换成⼀个 单独的⽂件加⼊到输出列表,这步是可以修改输出内容的最后机会;输出完成:在确定好输出内容后,根据配置确定输出的路径和⽂件名,把⽂件内容写⼊到⽂件系统。 在以上过程中,Webpack 会在特定的时间点⼴播出特定的事件,插件在监听到感兴趣的事件后会执⾏特定的逻辑,并 且插件可以调⽤ Webpack 提供的 API 改变 Webpack 的运⾏结果。

前端问答 2020-01-10 00:19:04 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站