Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

168
Views
Webpack en el backend: exportaciones faltantes

Estoy tratando de usar webpack en el backend para transpilar este código (llamado sub.js ):

 export const foo1 = () => { console.log("I'm foo1"); }; console.log('loaded');

Puedo compilarlo y luego importarlo bien. Al importar ( require ) veo el 'cargado', pero el objeto importado está vacío y en particular no tiene función foo1 .

Este es mi webpack.config.js:

 const path = require('path'); const webpack = require('webpack'); module.exports = { entry: `./sub.js`, module: { rules: [{ test: /\.(js|jsx)$/, exclude: /node_modules/, loader: 'babel-loader', options: { plugins: [ '@babel/plugin-proposal-class-properties' ] }, }], }, resolve: { extensions: ['*', '.js', '.jsx'], }, output: { path: path.resolve(__dirname, 'dist'), filename: 'backend.js' }, mode: 'production', };

Mi package.json :

 { "name": "sub", "version": "1.0.0", "description": "", "main": "dist/backend.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@babel/core": "^7.13.8", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/preset-env": "^7.13.9", "@babel/preset-react": "^7.12.10", "babel-loader": "^8.2.2", "webpack": "^5.65.0", "webpack-cli": "^4.9.1" } }

Pruebo usando:

 > npx webpack && node --eval "r = require('./dist/backend.js'); console.log(r);" asset backend.js 45 bytes [emitted] [minimized] (name: main) runtime modules 396 bytes 2 modules ./sub.js 204 bytes [built] [code generated] webpack 5.65.0 compiled successfully in 250 ms loaded {}

esperaba ver:

 loaded {foo1: [Function]}

o similar.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Encontré el problema. Aparentemente, debe declarar explícitamente las bibliotecas exportadas en la salida. Ahora que he añadido esto:

 output: { path: path.resolve(__dirname, 'dist'), filename: 'backend.js', library: { type: 'commonjs-module', }, },

Yo obtengo:

 > npx webpack && node --eval "r = require('./dist/backend.js'); console.log(r);" asset backend.js 192 bytes [emitted] [minimized] (name: main) ./sub.js 323 bytes [built] [code generated] webpack 5.65.0 compiled successfully in 275 ms loaded { foo1: [Function] }

como se esperaba.

Para referencia https://webpack.js.org/configuration/output/#outputlibrary .

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!