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

164
Views
Compile archivos .jsx en lugar de .js usando babel

Estoy empezando a aprender ReactJs y estaba tratando de construir un entorno desde cero usando este "constructor" .

Todo funciona bastante bien, pero me gustaría trabajar con archivos .jsx en lugar de .js (de lo contrario, el editor de texto falla, y se siente mejor usando una extensión diferente para scripts no compilados)

Sin embargo, no logré compilar tales archivos .jsx , solo funciona con archivos .js .

Estos son los archivos de configuración para .babelrc :

 { "presets":["es2015","react"] }

Y mi webpack.config.js :

 var path = require('path'); var config = { context: path.join(__dirname,'src'), entry:[ './main.js' ], output:{ path :path.join(__dirname,'www'), filename:'bundle.js' }, module:{ loaders:[ { test: /\.js$/, exclude:/node_modules/, loaders:['babel'] } ], }, resolveLoader:{ root: [ path.join(__dirname,'node_modules') ] }, resolve:{ root:[ path.join(__dirname,'node_modules') ] } }; module.exports = config;

Intenté simplemente cambiar las extensiones en el archivo de configuración del paquete web de js a jsx , pero fue en vano. ¿Algunas ideas?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Simplemente reemplace esta línea:

 test: /\.js$/,

con:

 test: /\.jsx$/,

Ejecutará el cargador de babel en los archivos .jsx , en lugar de los archivos .js .

Si desea transpilar tanto .js como .jsx , puede establecerlo en /\.jsx?$/ , ¿dónde ? en expresiones regulares indica que coincida con 0 o 1 ocurrencias del carácter anterior: prueba positiva tanto para .js como para .jsx .

La propiedad .test indica una condición que se debe cumplir para ejecutar el cargador especificado en la clave del loader . Puede leer más sobre las opciones de module.loader aquí .

Además, al importar módulos, debe agregar la extensión .jsx , así:

 import Counter from './Counter.jsx';

O configure la configuración resolve.extensions de resolve.extensions para agregar la extensión .jsx (de manera predeterminada, solo busca archivos .js). Me gusta esto:

 resolve: { /* ... */ extensions: ['', '.js', '.jsx'] }

De esta manera, puede importar sus archivos sin la extensión:

 import Counter from './Counter';
over 4 years ago · Santiago Trujillo 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!