Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

140
Visualizações
Consumo de memoria muy alto al crear múltiples aplicaciones vue con vue-loader

Usamos vue-loader (generalmente junto con el html-webpack-plugin, pero lo omito a continuación porque no es la parte importante) para transpilar múltiples aplicaciones basadas en vue dentro de un solo proyecto. La configuración de nuestro paquete web se parece un poco a lo siguiente:

 const apps = [ { html: 'app-1', js: 'app-1' }, { html: 'app-2', js: 'app-2' }, ... ] module.exports = (_a, _b) =>({ entry: Object.fromEntries(apps.map(app => [app.js, './src/${app.js}.js'])), ... plugins: [ new VueLoaderPlugin() ], ... })

Entonces, por ejemplo, app-1.html tiene un div con id app , al que se hace referencia en app-1.js :

 import Vue from 'vue' import App1 from './app-1.vue' ... new Vue({...}).$mount('#app')

Esto significa que nuestra estructura de directorios (muy simplificada) se parece a lo siguiente:

  • origen
    • aplicación-1.html
    • aplicación-1.js
    • app-1.vue
    • aplicación-2.html
    • aplicación-2.js
    • app-2.vue
    • ...
  • paquete.json
  • webpack.config.js

Ahora, aquí está nuestro problema: notamos un consumo de memoria muy alto, que aumenta drásticamente cuantas más aplicaciones tenemos en nuestra matriz de aplicaciones . Esto es algo así como > 10 GB para un proyecto que contiene 8 de estas aplicaciones.

¿Podría ser algo así como una fuga de memoria en el vue-loader o estamos haciendo un mal uso del complemento? Estamos usando la versión 15.10.0 de vue-loader.

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Parece que vue-loader no fue el culpable. Puedo reproducir el mismo alto consumo de memoria cuando elimino el vue-loader por completo y no uso ningún complemento. Parece que el complemento terser (que utiliza automáticamente el paquete web) es el que consume tanta memoria (ver también https://github.com/webpack/webpack/issues/13550 ). Por defecto, terser genera muchos hilos. Uno puede controlar este comportamiento:

 const TerserPlugin = require("terser-webpack-plugin") ... module.exports = { ... optimization: { minimize: true, minimizer: [ new TerserPlugin({ parallel: 2, }) ] } }

La solución alternativa sería usar otro minimizador, por ejemplo, esbuild-loader.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda