Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Upload automático de source maps com o plugin para web e H5

Última atualização: Jul 28, 2026

Ao rastrear erros de JavaScript (JS) no frontend, um stack trace localiza a falha. O Real User Monitoring (RUM) coleta esses stack traces de erros JS e os analisa com arquivos de source map enviados previamente. Como o RUM gerencia múltiplas versões de arquivos de source map, associar com precisão um arquivo JS presente no stack trace de uma exceção ao seu arquivo de source map correspondente apenas pelo nome costuma ser difícil. Com o plugin de ferramenta de build do RUM, você injeta um UUID nos arquivos JS empacotados e nos arquivos de source map para estabelecer um vínculo bidirecional. Assim, o RUM analisa e exibe automaticamente o stack trace ao abrir a página de detalhes da exceção, sem necessidade de selecionar manualmente um arquivo de source map.

Pré-requisitos

Antes de usar o plugin, conclua as preparações a seguir:

  • Crie um workspace e um aplicativo RUM Web ou H5 no Cloud Monitor 2.0 e obtenha o workspace e o serviceId. Para obter instruções, consulte Integrate a web or H5 application.

  • Use Node.js 20 LTS ou Node.js 22 e superior no ambiente de build.

  • Obtenha um AccessKey ID e um AccessKey secret. A conta precisa ter permissões do CMS. Veja abaixo um exemplo de política de permissão mínima:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "cms:GetRumSymbolFileParams",
          "Resource": "*"
        }
      ]
    }

Use o plugin de ferramenta de build do RUM

Webpack

  1. Instale o pacote npm do plugin de ferramenta de build do RUM para Webpack.

    npm install -D @arms/rum-webpack-plugin
  2. Integre e configure o plugin do Webpack.

    Em builds de produção, use hidden-source-map para evitar expor a URL do source map na saída JavaScript.

    const { rumWebpackPlugin } = require('@arms/rum-webpack-plugin');
    
    module.exports = {
      mode: 'production',
      devtool: 'hidden-source-map',
      plugins: [
        rumWebpackPlugin({
          workspace: 'your-workspace',
          serviceId: 'your-rum-service-id',
          version: 'your-release-version',
          region: 'cn-hangzhou',
          accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
          accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
          stsToken: process.env.ALIBABA_CLOUD_SECURITY_TOKEN,
          clearSourceMap: true,
        }),
      ],
    };

    O Webpack ignora o processamento e o upload do source map quando mode === 'development' ou NODE_ENV === 'development'. Use um build diferente de desenvolvimento para enviar os source maps de produção.

Vite

  1. Instale o pacote npm do plugin de ferramenta de build do RUM para Vite.

    npm install -D @arms/rum-vite-plugin
  2. Integre e configure o plugin do Vite.

    import { defineConfig } from 'vite';
    import { rumVitePlugin } from '@arms/rum-vite-plugin';
    
    export default defineConfig({
      build: {
        sourcemap: true,
      },
      plugins: [
        rumVitePlugin({
          workspace: 'your-workspace',
          serviceId: 'your-rum-service-id',
          version: 'your-release-version',
          region: 'cn-hangzhou',
          accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
          accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
          stsToken: process.env.ALIBABA_CLOUD_SECURITY_TOKEN,
          clearSourceMap: true,
        }),
      ],
    });

    Defina o parâmetro build.sourcemap como true ou 'hidden'. Não use 'inline'.

Referência de configuração

Campo

Obrigatório para upload automático

Padrão

Descrição

workspace

Sim

Nenhum

Nome do workspace do Cloud Monitor 2.0.

serviceId

Sim

Nenhum

Service ID do aplicativo RUM.

version

Sim

Sem padrão

Versão de lançamento do aplicativo. Isola source maps entre diferentes builds. Use sua versão de lançamento real ou número de build.

region

Sim

Sem padrão

Região do serviço RUM.

accessKeyId

Sim

Nenhum

AccessKey ID para chamar a OpenAPI de política de upload.

accessKeySecret

Sim

Nenhum

AccessKey secret para chamar a OpenAPI de política de upload.

stsToken

Não

Nenhum

Token do Security Token Service (STS) transmitido ao usar credenciais temporárias STS.

clearSourceMap

Não

false

Exclui os arquivos locais .map após um upload bem-sucedido. Impede a publicação dos source maps junto com os ativos estáticos.

Verifique a injeção

Verifique os arquivos de source map

Se clearSourceMap: false, abra um arquivo .map no diretório de saída do build. Um debugId formatado corretamente no nível superior indica injeção bem-sucedida. Exemplo:

{
  "version": 3,
  "file": "index.js",
  "sources": ["webpack://app/src/index.ts"],
  "sourcesContent": ["throw new Error('test');"],
  "mappings": "AAAA",
  "debugId": "e4f083d6-b8d8-4cae-a0ea-16f2e83a6be1"
}

O campo sourcesContent deve estar presente e preenchido. Se estiver ausente ou vazio, o RUM poderá restaurar apenas a localização do arquivo, sem exibir o contexto do código-fonte.

Verifique o runtime do navegador

Abra a página implantada e execute o seguinte comando no console do navegador:

window._armsRumDebugIds;

Se o objeto retornado contiver mapeamentos de UUID, os arquivos JavaScript da página atual registraram um debugId. O plugin também registra o debugId em globalThis, self, global, document.defaultView e janelas pai/top acessíveis para oferecer suporte a cenários de iframe e micro-frontends.

Verifique os resultados do upload

Na página File Management do aplicativo RUM, confirme se:

  • Os arquivos de source map aparecem na lista.

  • A versão do arquivo corresponde à version configurada no plugin.

  • O UUID corresponde ao debugId na saída do build.

Perguntas frequentes

Os logs de build relatam que os arquivos de source map não foram encontrados

Verifique se a ferramenta de build gera arquivos .map separados. Evite source maps inline ou eval. Confirme também se scripts de pós-processamento não modificaram os nomes e caminhos dos arquivos JavaScript e .map.

O upload foi bem-sucedido, mas a página de detalhes da exceção não exibe o código-fonte

Verifique os itens a seguir nesta ordem:

  1. O arquivo .map contém um sourcesContent não vazio?

  2. O debugId no source map corresponde ao UUID reportado no stack trace da exceção?

  3. Os valores de workspace, serviceId, version e region correspondem ao aplicativo RUM de destino?

  4. O arquivo enviado aparece na página File Management do aplicativo de destino?

O Webpack não envia arquivos

Confirme se nem mode nem NODE_ENV estão definidos como development. Verifique também se o build gera arquivos externos de source map.

Posso usar um bucket OSS personalizado?

Não. A OpenAPI retorna o endpoint de upload e os parâmetros de formulário. O plugin não expõe configurações de bucket.

Como impedir a implantação dos source maps na internet pública?

No Webpack, use hidden-source-map. Defina também clearSourceMap: true. O plugin exclui o arquivo local .map correspondente após cada upload bem-sucedido.

Erro indica que a versão atual do Node.js não suporta determinados recursos

Atualize o ambiente de build para Node.js 20 LTS ou Node.js 22 e superior. As dependências do plugin Vite não suportam Node.js 18 ou 21.

Um arquivo de source map excede o limite de tamanho

Um único arquivo de source map não pode exceder 50 MiB. Reduza o tamanho do arquivo com code splitting, diminuição do conteúdo de source inline ou ajuste da configuração de build. Mantenha sourcesContent suficiente para exibir o contexto do código-fonte.

Notas de versão

Recomendamos que novos usuários ou aqueles em processo de atualização usem a versão mais recente 1.1.0. A versão 0.0.x usa o pipeline de upload legado e não é mais recomendada.

Versão

Status

Descrição

1.1.0

Atualmente recomendada

Exige passagem explícita de um objeto de configuração do plugin. workspace, serviceId, version, region, accessKeyId e accessKeySecret são campos obrigatórios.

1.0.0

Atualização recomendada

Alterou o pipeline de upload para a API GetRumSymbolFileParams do CMS. Adicionou suporte a workspace, serviceId e autenticação via OpenAPI. Incluiu suporte a STS. Corrigiu internamente o tipo de upload para sourceMap.

0.0.22

Não recomendada

Usa o pipeline de upload legado. Estendeu o escopo de registro do debugId para iframes, micro-frontends e múltiplos objetos globais.

0.0.21

Não recomendada

Usa o pipeline de upload legado. Adicionou seleção de região e suporte a token STS.

0.0.8

Não recomendada

Usa o pipeline de upload legado. Adicionou upload automático de source map após o build do projeto.

0.0.5

Não recomendada

Usa o pipeline de upload legado. Adicionou suporte a Webpack e Vite. Injeta um UUID para criar um vínculo bidirecional entre arquivos JavaScript e seus arquivos de source map correspondentes.

Ao atualizar da versão 0.0.x para a 1.1.0:

  • Passe explicitamente um objeto de configuração para o plugin Webpack ou Vite e configure todos os campos obrigatórios.

  • Se a configuração existente usar pid, substitua-o por serviceId.

  • Configure explicitamente version e region. O plugin não fornece mais valores padrão.

  • Após a atualização da versão 0.0.x, o sistema usará o pipeline de upload da OpenAPI do CMS. Configure workspace, serviceId e a autenticação AccessKey conforme descrito neste documento.