无法让 React 与 webpack-dev-server 一起工作
Trouble getting React working with webpack-dev-server
我正在尝试开始学习使用 webpack 做出反应,并最终将 redux 扔在那里(很难找到一起学习这三者的指南......)无论如何,设置有问题。任何帮助表示赞赏。谢谢!
编辑:@FakeRainBrigand 的解决方案有效
我的错误是
webpack.config.js
var webpack = require('webpack');
var path = require('path');
module.exports = {
devtool: 'inline-source-map',
entry: [
'webpack-dev-server/client?http://127.0.0.1:8080/',
'webpack/hot/only-dev-server',
'./src'
],
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js'
},
resolve: {
modules: ['node_modules', 'src'],
extensions: ['.js', '.jsx']
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: ['react-hot-loader', 'babel-loader']
}
]
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin()
]
};
index.jsx
import React from 'react';
import { render } from 'react-dom';
import App from './components/app';
render(<App/>, document.getElementById('app'));
app.jsx
import React from 'react';
export default class App extends React.Component {
render() {
return (
<div>
<h1>My Blog</h1>
</div>
)
}
}
package.json
{
"name": "blog",
"version": "1.0.0",
"main": "index.jsx",
"license": "MIT",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2"
},
"devDependencies": {
"babel-core": "^6.24.0",
"babel-loader": "^6.4.1",
"babel-preset-es2015": "^6.24.0",
"babel-preset-react": "^6.23.0",
"react-hot-loader": "^1.3.1",
"webpack": "^2.3.2",
"webpack-dev-server": "^2.4.2"
}
}
我对 React 和 webpack 都不熟悉,所以这可能比我想象的要简单得多。非常感谢任何帮助。
您似乎缺少 .babelrc
文件。您可以 generate one here,或者只使用这个并安装依赖项。
{
"plugins": [
"transform-class-properties",
"transform-object-rest-spread"
],
"presets": [
[
"env",
{
"targets": {
"browsers": [
"> 1%"
]
}
}
],
"react"
]
}
安装
npm install --save-dev babel-preset-env babel-preset-react babel-plugin-transform-class-properties babel-plugin-transform-object-rest-spread
我正在尝试开始学习使用 webpack 做出反应,并最终将 redux 扔在那里(很难找到一起学习这三者的指南......)无论如何,设置有问题。任何帮助表示赞赏。谢谢!
编辑:@FakeRainBrigand 的解决方案有效
我的错误是
webpack.config.js
var webpack = require('webpack');
var path = require('path');
module.exports = {
devtool: 'inline-source-map',
entry: [
'webpack-dev-server/client?http://127.0.0.1:8080/',
'webpack/hot/only-dev-server',
'./src'
],
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js'
},
resolve: {
modules: ['node_modules', 'src'],
extensions: ['.js', '.jsx']
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: ['react-hot-loader', 'babel-loader']
}
]
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin()
]
};
index.jsx
import React from 'react';
import { render } from 'react-dom';
import App from './components/app';
render(<App/>, document.getElementById('app'));
app.jsx
import React from 'react';
export default class App extends React.Component {
render() {
return (
<div>
<h1>My Blog</h1>
</div>
)
}
}
package.json
{
"name": "blog",
"version": "1.0.0",
"main": "index.jsx",
"license": "MIT",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"react": "^15.4.2",
"react-dom": "^15.4.2"
},
"devDependencies": {
"babel-core": "^6.24.0",
"babel-loader": "^6.4.1",
"babel-preset-es2015": "^6.24.0",
"babel-preset-react": "^6.23.0",
"react-hot-loader": "^1.3.1",
"webpack": "^2.3.2",
"webpack-dev-server": "^2.4.2"
}
}
我对 React 和 webpack 都不熟悉,所以这可能比我想象的要简单得多。非常感谢任何帮助。
您似乎缺少 .babelrc
文件。您可以 generate one here,或者只使用这个并安装依赖项。
{
"plugins": [
"transform-class-properties",
"transform-object-rest-spread"
],
"presets": [
[
"env",
{
"targets": {
"browsers": [
"> 1%"
]
}
}
],
"react"
]
}
安装
npm install --save-dev babel-preset-env babel-preset-react babel-plugin-transform-class-properties babel-plugin-transform-object-rest-spread