Я пытаюсь реализовать webpack@4.41 и babel-loader@8 для обработки реагирующих сценариев. У меня проблемы с упаковкой синтаксиса jsx (при загрузке веб-пакета babel-loader возникает ошибка при обнаружении любых тегов html.
Я использую команду: npm run build
(webpack --mode production)
index. js
// Import the wrapper component, and the the creator function
import React from 'react';
import ReactDOM from 'react-dom';
class App extends React.Component {
render () {
return <p> Hello React project</p>;
}
}
render(<App/>, document.getElementById('app'));
Обычное сообщение об ошибке:
[0] ./src/index.js 339 bytes {0} [built] [failed] [1 error]
ERROR in ./src/index.js 9:11
Module parse failed: Unexpected token (9:11)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| class App extends React.Component {
| render () {
> return <p> Hello React project</p>;
| }
| }
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! webpack_test@1.0.0 build: `webpack --mode production`
npm ERR! Exit status 2
Связывание также постоянно происходит сбой при попытке сделать: render(<App/>, document.getElementById('app'));
после импорта компонента приложения из другого файла или определения функции приложения который отображает html тегов.
webpack.config. js
var webpack = require('webpack');
var path = require('path');
module.exports = {
output: {
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: ['@babel/preset-env', '@babel/preset-react']
}
}
}
]
}
};
package. json
"name": "webpack_test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "webpack --mode production"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.8.6",
"@babel/preset-env": "^7.8.6",
"@babel/preset-react": "^7.8.3",
"babel-loader": "^8.0.6",
"webpack": "^4.41.6",
"webpack-cli": "^3.3.11"
},
"dependencies": {
"react": "^16.13.0",
"react-dom": "^16.13.0",
"react-router-dom": "^5.1.2"
}
}
Я попытался связать индекс. * Файл 1036 * с @babel/cli
, который, кажется, работает (команда npx babel --presets @babel/preset-env,@babel/preset-react
). Я пытался решить эту проблему слишком долго, и я был бы очень признателен за некоторые указатели :) Спасибо за помощь,
ОБНОВЛЕНИЕ webpack.config.js
имел завершающий пробел, поэтому он не был распознан веб-пакетом.