/*
/*
/**
/**
const baseConfig = {
// 入口配置
entry: './src/app.js',
module: {
rules: [{
test: /.js$/,
include: path.resolve(__dirname, 'src'),
loader: 'babel-loader',
options: {
presets: ['env', 'es2015'],
},
},
{
test: /\.css$/,
use: [{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
options: {
sourceMap: true,
importLoaders: 1,
},
},
{
loader: 'postcss-loader',
options: {
plugins: [precss, autoprefixer({
// autoprefixer浏览器兼容配置
browsers: [
'>1%',
'last 5 version',
'ie >= 8',
'ios >= 7',
'android >= 4',
'firefox >= 20',
'chrome >= 40',
'Safari >= 6',
],
})],
},
},
],
},
],
},
plugins: [
new CleanWebpackPlugin('dist'),
new HtmlWebpackPlugin({ template: 'app.html', filename: 'index.html' }),
new webpack.BannerPlugin('版权所有,翻版必究!'),
],
};
module.exports = baseConfig;
webpack.dev.js
const webpack = require('webpack');
const path = require('path');
/*
/*
/**
/**
const baseConfig = {
// 入口配置
entry: './src/app.js',
module: {
rules: [{
test: /.js$/,
include: path.resolve(__dirname, 'src'),
loader: 'babel-loader',
options: {
presets: ['env', 'es2015'],
},
},
{
test: /\.css$/,
use: [{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
options: {
sourceMap: true,
importLoaders: 1,
},
},
{
loader: 'postcss-loader',
options: {
plugins: [precss, autoprefixer({
// autoprefixer浏览器兼容配置
browsers: [
'>1%',
'last 5 version',
'ie >= 8',
'ios >= 7',
'android >= 4',
'firefox >= 20',
'chrome >= 40',
'Safari >= 6',
],
})],
},
},
],
},
],
},
plugins: [
new CleanWebpackPlugin('dist'),
new HtmlWebpackPlugin({ template: 'app.html', filename: 'index.html' }),
new webpack.BannerPlugin('版权所有,翻版必究!'),
],
};
module.exports = baseConfig;
`
Actual Behavior
When attempting to run the webpack-dev-server, an error is being thrown:
PS E:\study\web\webpack-demo> webpack-dev-server --open --config webpack.dev.js
clean-webpack-plugin: E:\study\web\webpack-demo\dist has been removed.
E:\repositories\node\node_global\node_modules\webpack-dev-server\bin\webpack-dev-server.js:405
throw e;
^
TypeError: Cannot read property 'tap' of undefined
at compiler.hooks.thisCompilation.tap.compilation (E:\study\web\webpack-demo\node_modules\mini-css-extract-plugin\distindex.js:198:37)
at SyncHook.eval [as call] (eval at create (E:\repositories\node\node_global\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:17:12),
at SyncHook.lazyCompileHook [as _call] (E:\repositories\node\node_global\node_modules\webpack\node_modules\tapable\lib\Hook.js:35:21)
at Compiler.newCompilation (E:\repositories\node\node_global\node_modules\webpack\lib\Compiler.js:406:30)
at hooks.beforeCompile.callAsync.err (E:\repositories\node\node_global\node_modules\webpack\lib\Compiler.js:439:29)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\repositories\node\node_global\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:24:12),
at AsyncSeriesHook.lazyCompileHook [as _callAsync] (E:\repositories\node\node_global\node_modules\webpack\node_modules\tapable\lib\Hook.js:35:21)
at Compiler.compile (E:\repositories\node\node_global\node_modules\webpack\lib\Compiler.js:434:28)
at compiler.hooks.watchRun.callAsync.err (E:\repositories\node\node_global\node_modules\webpack\lib\Watching.js:76:18)
at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\repositories\node\node_global\node_modules\webpack\node_modules\tapable\lib\HookCodeFactory.js:24:12),
at AsyncSeriesHook.lazyCompileHook [as _callAsync] (E:\repositories\node\node_global\node_modules\webpack\node_modules\tapable\lib\Hook.js:35:21)
at Watching._go (E:\repositories\node\node_global\node_modules\webpack\lib\Watching.js:39:32)
at Watching.compiler.readRecords.err (E:\repositories\node\node_global\node_modules\webpack\lib\Watching.js:31:9)
at Compiler.readRecords (E:\repositories\node\node_global\node_modules\webpack\lib\Compiler.js:331:11)
at new Watching (E:\repositories\node\node_global\node_modules\webpack\lib\Watching.js:28:17)
at Compiler.watch (E:\repositories\node\node_global\node_modules\webpack\lib\Compiler.js:161:10)
at wdm (E:\repositories\node\node_global\node_modules\webpack-dev-server\node_modules\webpack-dev-middlewareindex.js:50:31)
at new Server (E:\repositories\node\node_global\node_modules\webpack-dev-server\lib\Server.js:95:21)
at startDevServer (E:\repositories\node\node_global\node_modules\webpack-dev-server\bin\webpack-dev-server.js:398:14)
at portfinder.getPort (E:\repositories\node\node_global\node_modules\webpack-dev-server\bin\webpack-dev-server.js:369:5)
at E:\repositories\node\node_global\node_modules\webpack-dev-server\node_modules\portfinder\lib\portfinder.js:160:14
at E:\repositories\node\node_global\node_modules\webpack-dev-server\node_modulesasync\libasync.js:52:16
but in webpack version 4.5.0.
it is success.
As you say, in the latest version it works, there is no point in using an old beta of webpack.
Seems this may no longer be the case? Can anyone confirm it working with webpack 4.8
set "html-webpack-plugin": "^4.0.0-alpha" => "4.0.0-alpha"
remove node_modules
remove package-lock.json
npm install
Reinstalling the packages and rebuilding packages-lock didn't work for me. I'm running Laravel Mix 4.1.4.
全局安装的插件和局部安装的插件冲突了。我全局安装webpack然后又局部安装,把局部的下载掉就好了
set "html-webpack-plugin": "^4.0.0-alpha" => "4.0.0-alpha"
remove node_modules
remove package-lock.json
npm install
Thank you so much! Working like a charm...
Most helpful comment
set "html-webpack-plugin": "^4.0.0-alpha" => "4.0.0-alpha"
remove node_modules
remove package-lock.json
npm install