【问题标题】:Cannot setup WebpackDevMiddleware on windows无法在 Windows 上设置 WebpackDevMiddleware
【发布时间】:2018-03-20 11:23:51
【问题描述】:

我整天都在努力解决这个问题,但仍然无法弄清楚。这是我得到的错误

project\node_modules\webpack-dev-middleware\lib\context.js:95
  context.compiler.hooks.invalid.tap('WebpackDevMiddleware', invalid);
                         ^

TypeError: Cannot read property 'invalid' of undefined

这与我的 webpack 开发中间件有关。

我已经检查了它自己的 webpack 是否可以,或者为了空间我会leave a gist to.

但是,当我尝试在以下 Node / Express 文件中启动它时,出现上述错误。

const env = require("node-env-file");
const envLocation = __dirname + "/../.env";
env(envLocation);

const path = require('path');
const express = require('express');
const webpack = require('webpack');
const webpackMiddleware = require('webpack-dev-middleware');
const webpackHotMiddleware = require('webpack-hot-middleware');
const config = require('./../webpack.config.js')({env : "dev"});

const app = express();

if (process.env.ENV === "DEV") {
    const compiler = webpack(config);
    const middleware = webpackMiddleware(compiler, {
        publicPath: config.output.publicPath,
        contentBase: 'src',
        stats: {
            colors: true,
            hash: false,
            timings: true,
            chunks: false,
            chunkModules: false,
            modules: false
        }
    });

    app.use(middleware);
} else {
    app.use(express.static(__dirname + '/dist'));

    app.get('*', function response(req, res) {
        res.sendFile(path.join(__dirname, 'dist/index.html'));
    });
}


// Set Port, hosting services will look for process.env.PORT
app.set('port', (process.env.PORT || 3000));

// start the server
app.listen(app.get('port'), () => {
    console.log(`Server is running on port ${app.get('port')}`);
});

谁能看看我是否遗漏了一些明显的东西?我在 Windows 10 机器上运行它。

package.json

"extract-text-webpack-plugin": "3.0.2",
"file-loader": "1.1.6",
"html-loader": "0.5.5",
"html-webpack-plugin": "2.30.1",
"node-sass": "4.7.2",
"rimraf": "2.6.2",
"sass-loader": "6.0.6",
"source-list-map": "2.0.0",
"style-loader": "0.20.1",
"uglify-js": "3.3.9",
"url-loader": "0.6.2",
"webpack": "3.10.0",
"webpack-dev-middleware": "^3.0.1",
"webpack-hot-middleware": "^2.21.2",
"webpack-dev-server": "2.11.1"

【问题讨论】:

  • 升级你的 Webpack 或降级中间件,应该可以工作!

标签: node.js express webpack


【解决方案1】:

尝试升级到 webpack 4。对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 2021-07-26
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    相关资源
    最近更新 更多