Getting ValidationError for mix phx.server

When I try to run mix phx.server I am getting this error…

[webpack-cli] ValidationError: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema. - options[0] misses the property 'patterns'. Should be: [non-empty string | object { from, to?, context?, globOptions?, filter?, toType?, force?, info?, transform?, transformPath?, noErrorOnMissing? }, ...] (should not have fewer than 1 item) 

Can anyone please help me with this?

“webpack”: “^5.23.0”,
“webpack-cli”: “^4.5.0”
npm -v 6.14.11

It’s in the webpack.config.js. The configuration of Copy webpack plugin has changed recently.

Please show the relevant part of your webpack config file…

my assets/webpack.config.js looks like this

const path = require('path'); const glob = require('glob'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); const webpack = require('webpack'); module.exports = (env, options) => ({ optimization: { minimizer: [ new UglifyJsPlugin({ cache: true, parallel: true, sourceMap: false }), new OptimizeCSSAssetsPlugin({}) ] }, entry: { './js/app.js': ['./js/app.js'].concat(glob.sync('./vendor/**/*.js')) }, output: { filename: 'app.js', path: path.resolve(__dirname, '../priv/static/js') }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader' } }, { test: /\.css$/, use: [MiniCssExtractPlugin.loader, 'css-loader'] } ] }, plugins: [ new MiniCssExtractPlugin({ filename: '../css/app.css' }), new CopyWebpackPlugin([{ from: 'static/', to: '../' }]), new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery" }) ] }); 

It should be…

 new CopyWebpackPlugin({ patterns: [{ from: "static/", to: "../" }] }), 
2 Likes