pengzhanbo 5de60d4d6e feat(theme): plume-theme next devloping !
add plugin-auto-frontmatter | add plugin-blog-data | devloping new theme
2022-10-19 02:30:20 +08:00

87 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: API
createTime: 2022-05-14T10:43:53.200Z
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')`