mirror of
https://github.com/pengzhanbo/vuepress-theme-plume.git
synced 2026-04-23 10:58:13 +08:00
86 lines
2.4 KiB
Markdown
86 lines
2.4 KiB
Markdown
---
|
||
title: API
|
||
createTime: 2022/05/14 10:43:53
|
||
author: pengzhanbo
|
||
permalink: /note/vuepress-plugin/netlify-functions/api/
|
||
---
|
||
|
||
## netlifyFunctionsPlugin(options)
|
||
|
||
在 vuepress 项目中使用, 或者 开发vuepress-theme时使用,提供 netlify-functions 开发时服务。
|
||
|
||
该插件应该优先于其他有依赖该插件的其他插件之前调用。
|
||
|
||
``` js
|
||
netlifyFunctionsPlugin({
|
||
sourceDirectory: '',
|
||
destDirectory: '',
|
||
proxyPrefix: '',
|
||
})
|
||
```
|
||
|
||
### options
|
||
|
||
__类型:__ `{ sourceDirectory: string, destDirectory: string, proxyPrefix: string }`
|
||
|
||
- `options.sourceDirectory`:
|
||
|
||
`functions` 开发时所在目录, 默认值: `app.dir.source('.vuepress/functions')`,
|
||
即,如果你的vuepress项目源码目录是 `src`, 那么 `sourceDirectory` 默认为 `src/.vuepress/functions/`
|
||
|
||
- `options.destDirectory`:
|
||
|
||
`functions` 构建后输出目录,默认值: `app.dir.dest('functions')`,
|
||
即,如果你的 vuepress项目配置的 `dest` 输出目录为 `docs`, 那么默认输出目录为 `docs/functions`,
|
||
一般来说,这个配置不需要手动修改。
|
||
|
||
- `options.proxyPrefix`:
|
||
|
||
在开发环境中, `Netlify Functions` 服务的默认路径是 `/.netlify/functions/*`, 但这并不能保持开发环境和
|
||
生产部署环境一致,所以需要将路径重写。
|
||
|
||
默认值: `/api`
|
||
|
||
即 `^/api/*` 的请求会被转发到 `/.netlify/functions/*` ,
|
||
如, `functions/my_function.ts` ,则请求 `/api/my_function` 将会转发到 `/.netlify/functions/my_function`。
|
||
|
||
|
||
|
||
## useNetlifyFunctionsPlugin(app, options)
|
||
|
||
在开发 vuepress plugin 时使用,为插件提供 `netlify functiosn` 支持
|
||
|
||
``` ts
|
||
import { useNetlifyFunctionsPlugin } from '@vuepress-plume/vuepress-plugin-netlify-functions'
|
||
|
||
const myPlugin = (): Plugin => {
|
||
return (app: App) => {
|
||
const {
|
||
// 请求前缀, 默认 /api
|
||
proxyPrefix,
|
||
preparePluginFunctions,
|
||
generatePluginFunctions
|
||
} = useNetlifyFunctionsPlugin(app, {
|
||
// 指定插件的functions目录,相关脚本在此目录中开发
|
||
directory: path.resolve(__dirname, 'functions')
|
||
})
|
||
return {
|
||
name: 'vuepress-plugin-myPlugin',
|
||
onPrepared:() => preparePluginFunctions(),
|
||
onGenerated: () => generatePluginFunctions(),
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### options
|
||
|
||
__类型:__ `{ directory: string }`
|
||
|
||
- `options.directory`
|
||
|
||
插件中的 functions 开发目录。
|
||
|
||
一般来说,它的值都设置为 `path.resolve(__dirname, 'functions')`
|
||
|