Instalando pacotes NPM nas funções Supabase Edge Se você estiver familiarizado com as funções Supabase Edge, você pode saber que a instalação de pacotes NPM não é tão direta quanto em um aplicativo Node.js ou Express típico. No entanto, existem vários métodos para incluir pacotes NPM nas funções Supabase Edge. Neste guia, demonstrarei como usar o arquivo import_map.json para conseguir isso.
Verifique se o docker está instalado em sua máquina.
Escolha seu diretório e execute o seguinte comando:
npx supabase init Isso criará uma pasta supabase em seu diretório.
Execute o seguinte comando para iniciar o projeto:
npx supabase startEsse processo pode levar alguns minutos, pois extrai imagens do Docker e inicia os contêineres.
Abra o diretório em seu editor de código favorito e execute o comando a seguir para criar uma nova função Supabase Edge:
npx supabase functions new < your-function-name > Isso criará uma pasta com o nome da sua função dentro do diretório functions .
Você pode instalar qualquer pacote NPM. Para este exemplo, instalaremos os pacotes Langchain para criar um pipeline básico de RAG.
import_map.json Crie um arquivo chamado import_map.json em sua pasta functions e adicione o seguinte bloco JSON:
{
"imports" : {
"@supabase/supabase-js" : " npm:@supabase/[email protected] " ,
"langchain/" : " https://esm.sh/[email protected]/ " ,
"@langchain/openai/" : " https://esm.sh/@langchain/[email protected]/ " ,
"@langchain/core/" : " https://esm.sh/@langchain/[email protected]/ " ,
"@langchain/community/" : " https://esm.sh/@langchain/[email protected]/ "
}
}Se você deseja usar submódulos de um pacote NPM, adicione a
/no final do nome do pacote. Para referência, consulte a importação de@supabase/supabase-jse os pacoteslangchainrestantes.
Verifique se o seu projeto está vinculado ao seu projeto Supabase Cloud.
Para implantar sua função Edge no Supabase, execute o seguinte comando:
npx supabase functions deployEste comando implantará todas as funções.
Para implantar uma função específica, use:
npx supabase functions deploy < function-name >