Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/

Dependências externas

Nesta página

  • Adicionar um pacote externo
  • Adicione pacotes por nome e versão
  • Carregar um Diretório de Dependência
  • Importar um pacote em uma função
  • Importar um módulo completo
  • Importar uma subpasta de módulo

Uma dependência externa é uma biblioteca que inclui código que você não pode ou não deseja implementar. Por exemplo, você pode usar uma biblioteca oficial para um serviço externo ou uma implementação personalizada de uma estrutura de dados ou algoritmo.

O Atlas App Services transpila automaticamente as dependências e também oferece suporte à maioria dos módulos Node.js integrados.

Observação

Crie seus próprios módulos

Embora a maioria dos módulos npm seja escrita por terceiros, você também pode criar e publicar seus próprios módulos npm para armazenar lógica específica do seu aplicação. Você pode disponibilizar seus módulos para a comunidade Node.js ou reservá-los para uso privado. Para mais informações, consulte o guia da npm sobre Contribuição de pacotes para o registro.

Para importar e usar uma dependência externa, primeiro você precisa adicionar a dependência ao seu aplicativo. Você pode adicionar pacotes por nome ou enviar um diretório de dependências.

Importante

Substituir dependências existentes

Você só pode usar um método de cada vez para especificar os pacotes externos que sua aplicação pode usar. O método mais recente que você usou para especificar dependências é a fonte da verdade e substitui as especificações anteriores.

Por exemplo, um pacote adicionado pelo nome por meio da IUsubstitui todas as cópias do mesmo pacote que você adicionou anteriormente, inclusive aquelas em um diretório de dependências carregado.

Você pode adicionar pacotes do registro npm ao seu aplicativo por nome. Você pode adicionar uma versão específica ou usar a versão mais recente.

1
  1. Selecione Functions no menu de navegação esquerdo.

  2. Selecione a guia Dependencies.

  3. Clique no botão Add Dependency.

2

Na janela modal Add Dependency que aparece a partir das suas ações na etapa anterior, inclua as seguintes informações:

Campo
Descrição

Definir um nome de pacote

O nome do pacote npm.

Versão do pacote

Opcional. Versão específica da dependência a ser usada. Por padrão, o App Services usa a versão mais recente disponível.

Clique no botão Add para começar a adicionar o pacote.

Você pode acompanhar o status de adicionar a dependência no rastreador de progresso na parte inferior da janela. O rastreador de progresso fornece uma mensagem se o pacote foi bem-sucedido ou falhou. As mensagens de falha contêm informações adicionais sobre o motivo pelo qual o pacote não pôde ser adicionado.

Se os rascunhos estiverem habilitados, você também precisará clicar em Review & Deploy para aplicar essas alterações.

3

Se o App Services adicionar a dependência com êxito, você a verá na lista de dependências na guia Dependencies.

1

Puxe seu aplicativo para o dispositivo com o comando:

appservices pull
2
  1. Crie um package.json no diretório /functions do seu aplicativo. Você pode fazer isso copiando um arquivo package.json existente ou executando npm init e seguindo as instruções.

  2. Adicione dependências executando o npm install <dependency-name>.

3
  1. Go o diretório raiz do seu aplicativo:

    cd path/to/MyRealmApp
  2. Envie a versão mais recente do seu aplicativo com todas as dependências no package.json:

    appservices push --include-package-json
  3. Siga as instruções do CLI para confirmar que você deseja incluir as dependências em sua operação. A CLI começará a adicionar as dependências ao seu aplicativo.

4

Quando terminar de adicionar as dependências, a CLI informará se todos os pacotes foram adicionados com sucesso.

Se algo falhar durante a instalação, nenhuma das dependências será instalada. Remova as dependências com falha do arquivo package.json e tente novamente.

1

Ative os Sistemas Automáticos do Github para que possa reimplantar seu aplicativo sempre que enviar atualizações de configuração para uma ramificação especificada no Github.

2

Puxe seu aplicativo para o dispositivo com o comando:

appservices pull
3
  1. Crie um package.json no diretório /functions do seu aplicativo. Você pode fazer isso copiando um arquivo package.json existente ou executando o npm init e seguindo as instruções.

  2. Adicione dependências executando o npm install <dependency-name>.

4

Git Envie a versão mais recente do seu aplicativo com todas as dependências no package.json para Github com um comando como:

git push origin main
5

O Atlas App Services Github implementa automaticamente sua configuração de aplicativo atualizada depois que você envia o commit. Você pode verificar o status da implantação e confirmar que todos os pacotes foram adicionados com êxito na tela Deployment da interface do usuário do Atlas App Services .

Se algo falhar durante a implantação, nenhuma das dependências será instalada. Remova as dependências com falha do arquivo package.json e tente novamente.

Você pode fazer upload de um diretório node_modules de pacotes compactado para seu aplicativo. Os diretórios de dependências compactados não podem exceder 15 MB.

1

Para carregar dependências externas, primeiro você precisa de uma pasta local node_modules contendo pelo menos um pacote Node.js. Você pode usar o seguinte trecho de código para instalar localmente uma dependência que gostaria de carregar:

npm install <package name>

Se a pasta node_modules ainda não existir, este comando a cria automaticamente.

Observação

Métodos alternativos de instalação

Você também pode configurar um package.json e executar o comando npm install para instalar todos os pacotes (e suas dependências) listados em seu package.json.

Para saber mais sobre npm e node_modules, consulte a documentação npm.

2

Agora que você baixou todos os seus módulos npm, você precisa agrupá-los em um arquivo para que você possa carregá-los no App Services. Criar um arquivo contendo a pasta node_modules:

tar -czf node_modules.tar.gz node_modules/

Observação

Formatos de arquivo suportados

O App Services suporta os formatos de arquivo .tar, .tar.gz, .tgz e .zip.

3

Depois de criar um arquivo contendo suas dependências, você pode fazer upload de seu arquivo de dependência usando a UI ou a App Services CLI:

  1. Selecione Functions no menu de navegação esquerdo.

  2. Selecione a guia Dependencies.

  3. Clique no botão Upload.

  4. No seletor de arquivos, selecione o arquivo node_modules.tar.gz que você acabou de criar e clique em Abrir. O App Services carrega automaticamente o arquivo, que pode levar vários minutos, dependendo da velocidade da sua conexão com a internet e o tamanho do seu arquivo de dependência.

  5. Independentemente de a operação ter sido bem-sucedida ou não, o App Services exibe um banner indicando o sucesso ou a falha da operação. Se for bem-sucedida, a aba Dependencies exibirá uma lista das dependências que você incluiu no seu arquivo de dependências. Se os rascunhos estiverem habilitados, você também precisará clicar em Review & Deploy para aplicar estas alterações. Se os rascunhos estiverem desabilitados, a alteração entrará em vigor dentro de 5 a 60 segundos, dependendo do tamanho de seu arquivo de dependências.

  1. Adicione o arquivo node_modules ao seu diretório /functions :

    mv node_modules.tar.gz ./myapp/functions
  2. Envie seu aplicação com a opção --include-node-modules :

    appservices push --include-node-modules

É possível importar módulos internos e pacotes externos que você adicionou à sua aplicação e usá-los em suas funções. Para importar um pacote, chame require() com o nome do pacote no corpo da função.

Importante

Onde importo módulos?

Os projetos Node.js geralmente colocam as chamadas do require() no escopo global de cada arquivo, mas o App Services não é compatível com esse padrão. Você deve fazer chamadas do App Services require() dentro de um escopo de função.

exports = () => {
const R = require("ramda");
return R.map(x => x*2, [1,2,3]);
}
exports = function(arg){
const cloneDeep = require("lodash/cloneDeep");
var original = { name: "Deep" };
var copy = cloneDeep(original);
copy.name = "John";
console.log(`original: ${original.name}`);
console.log(`copy: ${copy.name}`);
return (original != copy);
};

Voltar

Global Modules