千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Plugin解决了什么问题?

Plugin解决了什么问题?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 09:51:03 1697161863

一、Plugin解决了什么问题

1、提高灵活性和可扩展性

Plugin机制使得系统的功能可以按需动态加载,可以满足各种业务需求,提高了系统的灵活性和可扩展性。

2、降低复杂度

Plugin通过将不同功能模块拆分成不同的插件,可以使系统更易于管理,避免过多的耦合和依赖关系,降低了系统的复杂度。

3、提高可重用性

Plugin模块可以被多个应用程序或系统所共享使用,可以减少代码的重复编写,提高了可重用性。

4、简化维护

Plugin可以独立开发、测试和部署,可以独立地进行修改和更新,能够简化系统的维护工作。

5、提高安全性

Plugin可以提供额外的安全保障,可以对系统的功能进行更精细的控制和管理,增强了系统的安全性。

二、Plugin概述

1、概念

Plugin(Plug-in)是一种计算机应用程序,它和主应用程序互相交互,以提供特定的功能。是一种遵循一定规范的应用程序接口编写出来的程序,只能运行在程序规定的系统下,因为其需要调用原纯净系统提供的函数库或者数据。webpack中的plugin也是如此,plugin赋予其各种灵活的功能,例如打包优化、资源管理、环境变量注入等,它们会运行在 webpack 的不同阶段(钩子 / 生命周期),贯穿了webpack整个编译周期。

目的在于解决loader无法实现的其他事。

2、配置方式

这里讲述文件的配置方式,一般情况,通过配置文件导出对象中plugins属性传入new实例对象。如下所示:

const HtmlWebpackPlugin = require('html-webpack-plugin'); // 通过 npm 安装const webpack = require('webpack'); // 访问内置的插件module.exports = {  ...  plugins: [    new webpack.ProgressPlugin(),    new HtmlWebpackPlugin({ template: './src/index.html' }),  ],};

3、特性

其本质是一个具有apply方法javascript对象,apply方法会被webpack compiler调用,并且在整个编译生命周期都可以访问compiler对象。

const pluginName = 'ConsoleLogOnBuildWebpackPlugin';class ConsoleLogOnBuildWebpackPlugin {  apply(compiler) {    compiler.hooks.run.tap(pluginName, (compilation) => {      console.log('webpack 构建过程开始!');    });  }}module.exports = ConsoleLogOnBuildWebpackPlugin;

compiler hook的tap方法的名列前茅个参数,应是驼峰式命名的插件名称,关于整个编译生命周期钩子,有如下:

entry-option :初始化 optioncompile: 真正开始的编译,在创建 compilation 对象之前compilation :生成好了 compilation 对象make:从 entry 开始递归分析依赖,准备对每个模块进行 buildafter-compile: 编译 build 过程结束emit :在将内存中 assets 内容写到磁盘文件夹之前after-emit :在将内存中 assets 内容写到磁盘文件夹之后done: 完成所有的编译过程failed: 编译失败的时候

4、机制和原理

应用软件提供使插件能够应用的各项服务,其中包括提供加载方式,使插件可以加载到应用程序和网络传输协议中,从而和插件进行数据交换。插件必须依赖于应用程序才能发挥自身功能,仅靠插件是无法正常运行的。相反地,应用程序并不需要依赖插件就可以运行,这样一来,插件就可以加载到应用程序上并且动态更新而不会对应用程序造成任何改变。

简单来说插件技术是能通过在软件的设计和研发过程中把软件的需求和功能进行划分,使程序分为两个主要部分主程序和插件。把基础的功能要求设计在主程序中,另外,主程序还提供与插件的接口,使相应的插件能够按一定的规则进行数据交换,从而实现一些功能;而插件则是一个个实现部分功能的组件,这样通过增减插件或修改插件内部功能来调整软件的功能,由于插件是对独立的部分,可以独立进行编辑。从而实现软件功能的扩展和不断改进。

公开应用程序接口提供一个标准的界面,允许其他人编写插件和应用程序互动。一个稳定的应用程序接口会允许 其他插件正常运行即使其最初的版本有所变动,也会支持插件延长老旧的应用程序的使用寿命。Adobe Photoshop 和After Effects的插件应用程序接口逐渐成为标准,并且被一些和它们竞争的应用程序部分采纳。

5、常见的Plugin

延伸阅读1:插件的种类

文本插件:类似批处理命令的简单插件。脚本插件:使用一种特殊的脚本语言来实现的插件。程序插件:利用已有的程序开发环境来制作插件。
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT