org javascript webpack babeljs es6-module-loader

javascript - org - "Es posible que necesite un cargador apropiado para manejar este tipo de archivo" con Webpack y Babel



webpack org js (6)

Asegúrese de tener instalado el preajuste babel es2015 .

Un ejemplo de package.json devDependencies es:

"devDependencies": { "babel-core": "^6.0.20", "babel-loader": "^6.0.1", "babel-preset-es2015": "^6.0.15", "babel-preset-react": "^6.0.15", "babel-preset-stage-0": "^6.0.15", "webpack": "^1.9.6", "webpack-dev-middleware": "^1.2.0", "webpack-hot-middleware": "^2.0.0" },

Ahora configure babel-loader en la configuración de su paquete web:

{ test: //.js$/, loader: ''babel-loader'', exclude: /node_modules/ }

agregue un archivo .babelrc a la raíz de su proyecto donde están los módulos de nodo:

{ "presets": ["es2015", "stage-0", "react"] }

Más información:

Estoy tratando de usar Webpack con Babel para compilar activos ES6, pero recibo el siguiente mensaje de error:

You may need an appropriate loader to handle this file type. | import React from ''react''; | /* | import { render } from ''react-dom''

Así es como se ve mi configuración de Webpack:

var path = require(''path''); var webpack = require(''webpack''); module.exports = { entry: ''./index'', output: { path: path.join(__dirname, ''dist''), filename: ''bundle.js'', publicPath: ''/dist/'' }, module: { loaders: [ { test: //.jsx?$/, loader: ''babel-loader'', exclude: /node_modules/ } ] } }

Aquí está el paso de middleware que hace uso de Webpack:

var webpack = require(''webpack''); var webpackDevMiddleware = require(''webpack-dev-middleware''); var config = require(''./webpack.config''); var express = require(''express''); var app = express(); var port = 3000; var compiler = webpack(config); app.use(webpackDevMiddleware(compiler, { noInfo: true, publicPath: config.output.publicPath })); app.get(''/'', function(req, res) { res.sendFile(__dirname + ''/index.html''); }); app.listen(port, function(err) { console.log(''Server started on http://localhost:%s'', port); });

Todo lo que mi archivo index.js está haciendo es importar reaccionar, pero parece que el ''babel-loader'' no funciona.

Estoy usando ''babel-loader'' 6.0.0.


Debido a las actualizaciones y cambios en el tiempo extra, la compatibilidad de la versión comienza a causar problemas con la configuración.

Su webpack.config.js debería ser así, también puede configurar la forma en que se atenúa.

var path = require(''path''); var webpack = require("webpack"); module.exports = { entry: ''./src/js/app.js'', devtool: ''source-map'', mode: ''development'', module: { rules: [{ test: //.js$/, exclude: /node_modules/, use: ["babel-loader"] },{ test: //.css$/, use: [''style-loader'', ''css-loader''] }] }, output: { path: path.resolve(__dirname, ''./src/vendor''), filename: ''bundle.min.js'' } };

Otra cosa para notar es el cambio de argumentos, debe leer la documentación de Babel https://babeljs.io/docs/en/presets

.babelrc { "presets": ["@babel/preset-env", "@babel/preset-react"] }

NB: debe asegurarse de tener las @ babel / preset-env & @ babel / preset-react instaladas anteriormente en sus dependencias package.json


Este me lanzó a dar una vuelta. Angular 7, Webpack Encontré este artículo, así que quiero dar crédito al artículo https://www.edc4it.com/blog/web/helloworld-angular2.html

Cuál es la solución: // en su archivo componente. use template como webpack lo tratará como plantilla de texto: require (''./ process.component.html'')

para que el karma lo interprete npm install add html-loader --save-dev {test: /.html$/, use: "html-loader"},

Espero que esto ayude a alguien


Si está utilizando Webpack> 3, entonces solo necesita instalar babel-preset-env , ya que este preset representa es2015, es2016 y es2017.

var path = require(''path''); let webpack = require("webpack"); module.exports = { entry: { app: ''./app/App.js'', vendor: ["react","react-dom"] }, output: { filename: ''bundle.js'', path: path.resolve(__dirname, ''../public'') }, module: { rules: [{ test: //.jsx?$/, exclude: /node_modules/, use: { loader: ''babel-loader?cacheDirectory=true'', } }] } };

Esto recoge su configuración de mi archivo .babelrc :

{ "presets": [ [ "env", { "targets": { "browsers":["last 2 versions"], "node":"current" } } ],["react"] ] }


es2015 instalar el preajuste es2015 :

npm install babel-preset-es2015

y luego configurar babel-loader :

{ test: //.jsx?$/, loader: ''babel-loader'', exclude: /node_modules/, query: { presets: [''es2015''] } }


Cuando se utiliza el mecanografiado:

En mi caso, utilicé la sintaxis más reciente de webpack v3.11 de su página de documentación, acabo de copiar la configuración de cargadores de estilo y CSS de su sitio web. El código comentado (API más nueva) causa este error, ver más abajo.

module: { loaders: [{ test: //.ts$/, loaders: [''ts-loader''] }, { test: //.css$/, loaders: [ ''style-loader'', ''css-loader'' ] } ] // , // rules: [{ // test: //.css$/, // use: [ // ''style-loader'', // ''css-loader'' // ] // }] }

La forma correcta es poner esto:

{ test: //.css$/, loaders: [ ''style-loader'', ''css-loader'' ] }

en la matriz de la propiedad de cargadores.