Я пытаюсь использовать Webpack с Babel для компиляции ресурсов ES6, но получаю следующее сообщение об ошибке:
You may need an appropriate loader to handle this file type.
| import React from 'react';
| /*
| import { render } from 'react-dom'
Вот как выглядит моя конфигурация 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/
}
]
}
}
Вот шаг промежуточного программного обеспечения, который использует 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);
});
Все, что делает мой файл index.js, - это импорт реакции, но похоже, что «babel-loader» не работает.
Я использую «babel-loader» 6.0.0.
Ответы:
Вам необходимо установить
es2015
пресет:а затем настройте
babel-loader
:источник
Убедитесь, что у вас установлена предустановка babel es2015 .
Пример package.json devDependencies:
Теперь настройте babel-loader в конфигурации вашего веб-пакета:
добавьте файл .babelrc в корень вашего проекта, где находятся модули узлов:
Больше информации:
babeljs.io - использование babel с webpack
babeljs.io - документы на .babelrc
react-webpack-cookbook - настроить реакцию с помощью webpack
источник
Если вы используете Webpack> 3, вам нужно только установить
babel-preset-env
, поскольку этот пресет учитывает es2015, es2016 и es2017.Это берет его конфигурацию из моего
.babelrc
файла:источник
Из-за обновлений и изменений со временем совместимость версий начинает вызывать проблемы с конфигурацией.
Ваш webpack.config.js должен быть таким, вы также можете настроить его размер.
Еще одна вещь, чтобы заметить, это изменение аргументов, вы должны прочитать документацию babel https://babeljs.io/docs/en/presets
NB: вы должны убедиться, что в ваших зависимостях package.json установлены указанные выше @ babel / preset-env и @ babel / preset-react
источник
@babel/preset-react
исправило это для меня.ОБНОВЛЕНИЕ КОМАНДЫ BABEL:
Мы очень рады тому, что вы пытаетесь использовать синтаксис ES2015, но вместо того, чтобы продолжать использовать ежегодные предустановки, команда рекомендует использовать babel-preset-env. По умолчанию он имеет то же поведение, что и предыдущие предустановки для компиляции ES2015 + в ES5.
Если вы используете Babel версии 7, вам нужно будет запустить npm install @ babel / preset-env и иметь в вашей
.babelrc
конфигурации "presets": ["@ babel / preset-env"] .Это позволит собрать все новейшие функции в ES5 transpiled код:
Предпосылки :
Шаг 1:: npm install --save-dev @ babel / preset-env
Шаг 2: Для компиляции
JSX
кода в es5 babel предоставляет@babel/preset-react
пакет для преобразованияjsx
файла расширения реакции в понятный код собственного браузера.Шаг 3: установка npm --save-dev @ babel / preset-react
Шаг 4: создайте
.babelrc
файл внутри корневого пути вашего проекта, если онwebpack.config.js
существует.Шаг 5: webpack.config.js
источник
При использовании Typescript:
В моем случае я использовал новый синтаксис webpack v3.11 с их страницы документации. Я просто скопировал конфигурацию css и загрузчиков стилей с их веб-сайта. Закомментированный код (более новый API) вызывает эту ошибку, см. Ниже.
Правильно сказать так:
в массиве свойства loaders.
источник
Этот бросает меня в штык. Angular 7, Webpack Я нашел эту статью, поэтому хочу отдать должное статье https://www.edc4it.com/blog/web/helloworld-angular2.html
Какое решение: // в вашем файле компонента. использовать шаблон, поскольку веб-пакет будет рассматривать его как текстовый шаблон: require ('./ process.component.html')
чтобы карма интерпретировала это npm install add html-loader --save-dev {test: /.html$/, use: "html-loader"},
Надеюсь, это кому-то поможет
источник