Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

602
Vistas
webpack/terser: ¿Cómo puedo excluir un paquete de la minificación, pero aún incluir ese paquete en el resultado empaquetado?

Encontré una serie de soluciones para excluir módulos particulares de la minificación, pero todas las soluciones que he visto hasta ahora no solo omiten la minificación de esos paquetes, sino que hacen que esos paquetes se omitan por completo de la salida del paquete web, lo que requiere que proporcione el código omitido por algún otro medio.

Lo que quiero hacer es continuar empaquetando todo el código necesario en un solo archivo de salida, pero simplemente tener secciones de esa salida sin minimizar. ¿Es eso posible?

La razón por la que quiero hacer esto en este caso particular es que el paquete mysql está fallando después de la minificación. Por el momento he deshabilitado toda la minificación, pero prefiero no resolver este problema de esa manera.

 const webpack = require('webpack'); const LicensePlugin = require('webpack-license-plugin'); const TerserPlugin = require('terser-webpack-plugin'); const path = require('path'); const mode = process.env.NODE_ENV || 'production'; // noinspection JSUnresolvedFunction module.exports = { mode, entry: './app/app.ts', target: 'node', output: { path: path.resolve(__dirname, 'dist'), filename: 'app.js' }, node: { __dirname: false, __filename: false, global: true }, resolve: { extensions: ['.ts', '.js'], mainFields: ['fesm2015', 'module', 'main'] }, module: { rules: [ { test: /\.ts$/, use: [ 'ts-loader', ] } ] }, optimization: { // TODO: Minification breaks mysql. How to exclude mysql from minification, but include in output? minimize: false, // mode === 'production', minimizer: [new TerserPlugin({ exclude: /node_modules\/mysql/, // <-- This doesn't work terserOptions: { output: { max_line_len: 511 }, } })], }, devtool: 'source-map', ignoreWarnings: [{ message: /require function is used in a way|the request of a dependency is an expression/ }], plugins: [ new webpack.BannerPlugin({ banner: '#!/usr/bin/env node', raw: true }), new LicensePlugin({ outputFilename: '3rdpartylicenses.txt', excludedPackageTest: name => /^(asynclist|emitter)/.test(name) }) ] };

Actualización : el problema particular con mysql y la minificación parece ser la manipulación de nombres de variables y/o funciones. Si configuro la opción mangle en false , puedo minimizar todo el código, incluido mysql , con éxito. Todavía tengo que averiguar qué nombres específicos no se pueden alterar sin causar problemas.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda