Я получаю следующую ошибку при запуске "npm run webpack-dev-server --mode = development"
ERROR in ./src/index.js 6:2
Module parse failed: Unexpected token (6:2)
You may need an appropriate loader to handle this file type.
|
| ReactDOM.render(
> <App />,
| document.getElementById('root')
| );
ℹ 「wdm」: Failed to compile.
У меня установлен webpack@4.28.4, ниже вы можете увидеть файлы package.json, webpack.server.js и index.js.
Я пытался поиграться с webpack.server.js и .babelrc, но, к сожалению, теперь с удачей.
package.json:
{
"name": "react-ssr",
"version": "1.0.0",
"description": "React Server Side Rendering",
"main": "index.js",
"scripts": {
"webpack-dev-server": "webpack-dev-server",
"dev": "webpack-dev-server --port 3001 --mode=development",
"prod": "webpack --mode=production"
},
"author": "Dakota Ruller",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1",
"nodemon": "^1.19.1",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-router": "^5.0.1",
"react-router-dom": "^5.0.1"
},
"devDependencies": {
"@babel/core": "^7.4.5",
"@babel/plugin-proposal-class-properties": "^7.4.4",
"@babel/preset-env": "^7.4.5",
"@babel/preset-react": "^7.0.0",
"babel-loader": "^8.0.6",
"css-loader": "^3.0.0",
"file-loader": "^4.0.0",
"html-webpack-plugin": "^3.2.0",
"path": "^0.12.7",
"style-loader": "^0.23.1",
"webpack": "^4.28.4",
"webpack-cli": "^3.3.5",
"webpack-dev-server": "^3.7.2",
"webpack-node-externals": "^1.7.2"
}
}
.babelrc:
{
"presets": [
[ "@babel/preset-env", {
"modules": false,
"targets": {
"browsers": [
"last 2 Chrome versions",
"last 2 Firefox versions",
"last 2 Safari versions",
"last 2 iOS versions",
"last 1 Android version",
"last 1 ChromeAndroid version",
"ie 11"
]
}
}
],
[
"@babel/preset-react",
{
"pragma": "dom",
"pragmaFrag": "DomFrag",
"throwIfNamespace": false
}
]
],
"plugins": [ "@babel/plugin-proposal-class-properties" ]
}
webpack.server.js:
const HtmlWebPackPlugin = require( 'html-webpack-plugin' );
const path = require( 'path' );
module.exports = {
context: __dirname,
entry: './src/index.js',
output: {
path: path.resolve( __dirname, 'dist' ),
filename: 'bundle.js',
publicPath: '/',
},
devServer: {
historyApiFallback: true
},
module: {
rules: [
{
test: /\.js?$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
{
test: /\.css?$/,
use: [ 'style-loader', 'css-loader' ]
},
{
test: /\.(png|j?g|svg|gif)?$/,
use: 'file-loader'
}
]
},
plugins: [
new HtmlWebPackPlugin({
template: path.resolve( __dirname, 'public/index.html' ),
filename: 'index.html'
})
]
};
index.js:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<App />,
document.getElementById('root')
);