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

124
Vistas
Compilando un proyecto mecanografiado con webpack

Tengo una pregunta para usted: ¿cómo es posible implementar la compilación de varios archivos mientras se conserva el árbol de carpetas y documentos, sin escribir cada archivo en la entry de esta manera?

 entry: { index:'./src/index.ts', 'bot/main':'./src/bot/main.ts' }

Pero al mismo tiempo, los archivos tenían sus nombres y su posición, como antes de la compilación en js, solo que en lugar de la carpeta src, ¿estaban en la carpeta dist?

Mi configuración actual webpack.config.js

 const path = require('path') const nodeExternals = require('webpack-node-externals') const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin') module.exports = { context: __dirname, entry: { index:'./src/index.ts', 'bot/main':'./src/bot/main.ts' }, externals: [nodeExternals()], module: { rules: [ { exclude: /node_modules/, test: /.ts$/, use: { loader: 'ts-loader' } } ] }, node: { __dirname: false }, resolve: { extensions: ['.ts', '.js'], plugins: [ new TsconfigPathsPlugin({ baseUrl: './src' }) ] }, output: { filename: '[name]js', path: path.resolve(__dirname, 'dist'), publicPath: '/dist/' }, target: 'node' }

Y al compilar en modo de production , todo esto se compiló en un archivo, teniendo en cuenta todas las URL, importaciones, etc.

¿Es posible?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Webpack en sí no hará eso por ti. Deberá escribir la función de ayudante de basura para lograr esto. La idea básica es rastrear el directorio, encontrar todos los archivos y luego proporcionarlos a Webpack:

 const path = require('path'); const glob = require('glob'); const extension = 'ts'; // Recursively find all the `.ts` files inside src folder. const matchedFiles = glob.sync(`./src/**/*.${extension}`, { nodir: true }); const entry = {}; matchedFiles.forEach((file) => { const SRC_FOLDER = path.join(__dirname, 'src'); const ABS_PATH = path.join(__dirname, file); // Generates relative file paths like `src/test/file.ts` const relativeFile = path.relative(SRC_FOLDER, ABS_PATH); // fileKey is relative filename without extension. // Eg `src/test/file.ts` becomes `src/test/file` const fileKey = path.join(path.dirname(relativeFile), path.basename(relativeFile, extension)); entry[fileKey] = relativeFile; }); module.exports = { context: __dirname, // Use the entry object generated above. entry, // ... rest of the configuration };
about 4 years ago · Juan Pablo Isaza Denunciar
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