0

我正在尝试使用热加载程序。我已经安装了 Hot Loader 并按照文档http://gaearon.github.io/react-hot-loader/getstarted/中的所有步骤进行操作。然后我向终端发出“npm start”命令。但是终端抛出错误。我无法看到我在组件中所做的更改反映在浏览器中。

webpack.config.js

var path = require('path');
var webpack = require('webpack');

module.exports = {
    devServer: {
        inline: true,
        contentBase: './src',
        port: 3000
    },
    devtool: 'cheap-module-eval-source-map',
    entry: [
        'webpack-dev-server/client?http://localhost:3000', // WebpackDevServer host and port
        'webpack/hot/only-dev-server', // "only" prevents reload on syntax errors
        './dev/js/index.js' // Your appʼs entry point
    ],
    module: {
        loaders: [
            {
                test: /\.js$/,
                loaders: ['react-hot','babel'],
                exclude: /node_modules/
            },
            {
                test: /\.scss/,
                loader: 'style-loader!css-loader!sass-loader'
            }
        ]
    },
output: {
        path: 'src',
        filename: 'js/bundle.min.js'
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new webpack.optimize.OccurrenceOrderPlugin()
    ]
};

Package.json 的脚本部分

"scripts": {
    "dev": "webpack",
    "start": "node server.js"
  },

服务器.js

var webpack = require('webpack');
var webpackDevServer = require('webpack-dev-server');
var config = require('./webpack.config');
var port = 3000;
var compiler = webpack(config);

new webpackDevServer(compiler, {
    publicPath: config.output.publicPath,
    hot:true,
    stats:{colors:true}
}).listen(port, 'localhost', function (err, result) {
    if(err){
        console.log(err);
    }
    console.log('listening at localhost' + port);
});

终端输出 项目结构

几个问题 1. 我的 server.js 文件是否正常。2. 我是否在 package.json 的脚本中正确包含了所有内容。3.“npm start”是启动热加载程序的命令吗?4. 即使在“npm start”之后出现错误,我也可以通过单击 chrome 图标在浏览器中启动我的应用程序。是什么原因。5. 我应该在这些文件中进行哪些更改才能获得一个正常工作的热加载程序。

浏览器窗口

4

0 回答 0