【发布时间】: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 或降级中间件,应该可以工作!