"use strict";(self.webpackChunkfes_js=self.webpackChunkfes_js||[]).push([[507],{494:(s,e,n)=>{n.r(e),n.d(e,{data:()=>a});const a={key:"v-1d14d5cc",path:"/guide/plugin.html",title:"插件",lang:"zh-CN",frontmatter:{},excerpt:"",headers:[{level:2,title:"插件的 id 和 key",slug:"插件的-id-和-key",children:[]},{level:2,title:"启动插件",slug:"启动插件",children:[{level:3,title:"package.json 依赖",slug:"package-json-依赖",children:[]},{level:3,title:"配置",slug:"配置",children:[]},{level:3,title:"环境变量",slug:"环境变量",children:[]}]},{level:2,title:"禁用插件",slug:"禁用插件",children:[]},{level:2,title:"配置插件",slug:"配置插件",children:[]}],filePathRelative:"guide/plugin.md",git:{updatedTime:1653450562e3,contributors:[{name:"wanchun",email:"445436867@qq.com",commits:1}]}}},9959:(s,e,n)=>{n.r(e),n.d(e,{default:()=>o});const a=(0,n(6252).uE)('

插件

插件的 id 和 key

每个插件都会对应一个 id 和一个 keyid 是路径的简写,key 是进一步简化后用于配置的唯一值

比如插件 /node_modules/@fesjs/plugin-foo/index.js,通常来说,其 id@fesjs/plugin-fookeyfoo

提示

id 一般用不上,对于普通开发者 key 用来配置插件,而插件开发者可以使用 key 判断是否安装某个插件。

启动插件

有多种方式引入插件

package.json 依赖

Fes.js 会自动检测 dependenciesdevDependencies 里的 fes 插件,比如:

{\n  "dependencies": {\n    "@fesjs/plugin-request": "^2.0.0"\n  }\n}\n
1
2
3
4
5

那么 @fesjs/plugin-request 会自动被注册,无需在配置里重复声明。

配置

在配置里可通过 presetsplugins 配置插件,比如:

export default {\n    presets: ['./preset', 'foo/presets'],\n    plugins: ['./plugin'],\n}\n
1
2
3
4

通常用于几种情况:

  1. 项目相对路径的插件
  2. 非 npm 包入口文件的插件

注意

请不要配置 npm 包的插件,否则会报重复注册的错误

环境变量

还可通过环境变量 FES_PRESETSFES_PLUGINS 注册额外插件。

比如:

FES_PRESETS=/a/b/preset.js fes dev\n
1

禁用插件

通过配置插件的 keyfalse,比如:

export default {\n    mock: false,\n}\n
1
2
3

Mock 插件的 keymock,我们在配置文件中配置 mockfalse,则会禁用 Mock 插件及其功能。

配置插件

通过插件的 key 来配置插件,比如:

export default {\n    mock: { \n        prefix: '/v2'\n    }\n}\n
1
2
3
4
5

这里的 mock 是 Mock插件 的 key。

',29),p={},o=(0,n(3744).Z)(p,[["render",function(s,e){return a}]])},3744:(s,e)=>{e.Z=(s,e)=>{const n=s.__vccOpts||s;for(const[s,a]of e)n[s]=a;return n}}}]);