org javascript webpack babeljs

javascript - org - webpack babel 7



Error de carga de Webpack Babel-Uncaught SyntaxError: importaciĆ³n de token inesperada (2)

En primer lugar, asegúrese de haber instalado el núcleo y el cargador Babel utilizando:

$ npm install --save-dev babel-loader babel-core

Entonces, el cargador correcto es babel-loader y no babel . La configuración debe ser:

module: { loaders: [ { test: //.js$/, exclude: /node_modules/, loader: "babel-loader" } ] }

En realidad, necesitas decirle a babel que transforme tu código.

Antes de 6.x, Babel habilitó ciertas transformaciones por defecto. Sin embargo, Babel 6.x no incluye transformaciones habilitadas. Necesitas decirle explícitamente qué transformaciones ejecutar. La forma más sencilla de hacerlo es mediante el uso de un ajuste preestablecido, como el ajuste preestablecido ES2015. Puedes instalarlo con.

$ npm install babel-preset-es2015 --save-dev

Después del preajuste instalado, debes habilitarlo.

Cree una configuración .babelrc en su raíz de proyecto y habilite algunos complementos.

Suponiendo que haya instalado el Preset ES2015, para habilitarlo debe definirlo en su archivo .babelrc , así:

{ "presets": ["es2015"] }

Detalles en la página de configuración de Babel .

Esta pregunta ya tiene una respuesta aquí:

Soy nuevo en Webpack y tengo un problema al seguir este tutorial .

Parece que webpack.config.js no está configurando babel-loader correctamente, pero no estoy seguro. En la consola veo el siguiente error:

bundle.js:49 Uncaught SyntaxError: Unexpected token import

Que se refiere a la línea import sortBy from ''lodash/collection/sortBy''; de mi index.js Entonces, supongo que es un problema de transposición de babel (no permite la sintaxis de import de ES6).

Aquí está el archivo completo index.js

import sortBy from ''lodash/collection/sortBy''; import {users} from ''./users''; import {User} from ''./User''; sortBy(users, ''name'') .map(user => { return new User(user.name, user.age); }) .forEach(user => { console.log(user.display); });

Y webpack.config.js ve así:

module.exports = { entry: ''./src/index.js'', output: { path: ''./public/'', filename: ''bundle.js'' }, devServer: { contentBase: ''./public/'' }, module: { loaders: [ {test: //.js$/, exclude: /node_modules/, loader: ''babel''} ] } }

He buscado a través de otras preguntas que parecían que se relacionan con el problema aquí y aquí , así como buscar en Google, pero no he encontrado una solución o razón por la que estoy recibiendo el error todavía. Tal vez el tutorial esté desactualizado. Cualquier guía sobre cómo solucionar este problema sería muy apreciada.

ACTUALIZAR

El error específico de carga de Babel se resolvió siguiendo los pasos descritos en la respuesta publicada a continuación por Alexandre Thebaldi.

Sin embargo, se produjo un nuevo error: Module not found: Error: Cannot resolve module ''lodash/collection/sortBy''

Si está trabajando en este tutorial y encuentra este error, lo más probable es que esté causado por una ruta incorrecta en index.js , específicamente por el hecho de que el directorio lodash/collections parece no existir más. lodash/sortBy resolver este segundo error simplemente cambiando la ruta a lodash/sortBy .

NOTA

Asegúrese primero de verificar que lodash esté instalado en node_modules y que la ruta sea correcta manualmente antes de cambiarla.


Mikeym

Este es un problema con babel-loader y ES6.

¿Puedes cambiar tu webpack.config.js a esto?

module.exports = { entry: ''./src/index.js'', output: { path: ''./public/'', filename: ''bundle.js'' }, devServer: { contentBase: ''./public/'' }, module: { loaders: [ {test: //.js$/, exclude: /node_modules/, loader: ''babel?presets[]=es2015'' } ] } }