Dependências externas
Nesta página
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.
Adicionar um pacote externo
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.
Adicione pacotes por nome e versão
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.
Adicionar informações de dependência
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.
Envie as dependências para o App Services
Go o diretório raiz do seu aplicativo:
cd path/to/MyRealmApp Envie a versão mais recente do seu aplicativo com todas as dependências no
package.json
:appservices push --include-package-json 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.
Ativar o sistema automático do Github
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.
Verificar sucesso da operação
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.
Carregar um Diretório de Dependência
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.
Instalar dependências externas localmente
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.
Criar um arquivo de dependência
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
.
Carregar o arquivo de dependência
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:
Selecione Functions no menu de navegação esquerdo.
Selecione a guia Dependencies.
Clique no botão Upload.
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.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.
Adicione o arquivo
node_modules
ao seu diretório/functions
:mv node_modules.tar.gz ./myapp/functions Envie seu aplicação com a opção
--include-node-modules
:appservices push --include-node-modules
Importar um pacote em uma função
É 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.
Importar um módulo completo
exports = () => { const R = require("ramda"); return R.map(x => x*2, [1,2,3]); }
Importar uma subpasta de módulo
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); };