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

605
Visualizações
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 à 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