React的Webpack不起作用

时间:2016-10-17 15:29:56

标签: javascript linux reactjs webpack

我刚开始使用React并在youtube上完成了codecademy个课程和其他几个课程。我决定配置我的本地机器进行反应。我开始使用webpack&的WebPack-dev的服务器。在这里我犯了错误。 Here is mistake screenshot

Also Here is my files tree

这是我的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: {
        modulesDirectories: ['node_modules', 'src'],
        extensions: ['', '.js']
    },
    module: {
        loader: [
        {
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loaders: ['react-hot', 'babel?presets[]=react,presets[]=es2015']
        }
        ]
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new webpack.NoErrorsPlugin()
    ]
};

我的index.html:

<!DOCTYPE html>
<html>
<head>
    <title>React ToDos App</title>
</head>
<body>
    <div id="app" />
    <script src="bundle.js"></script>
</body>
</html>

和index.js:

let message = 'Hello from entry message';

console.log(message);

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我在您的代码中看到两个问题:

  1. js包的名称在html和webpack中应该相同 - 您在webpack配置中使用ready.js,在html中使用bundle.js
  2. 在你的屏幕截图中,你有一个拼写错误,webpack配置的名称是webpack.congig.js,但它应该是webpack.config.js(默认情况下由webpack-dev-server使用)

答案 1 :(得分:0)

webpack配置中,您要将输出filename设置为ready.js,并在HTML中查找bundle.js。这就是错误的原因。在两个地方都给出相同的名称。

 <!DOCTYPE html>
<html>
<head>
    <title>React ToDos App</title>
</head>
<body>
    <div id="app" />
    <script src="ready.js"></script>
</body>
</html>