Hi, I am encountering Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema

Viewed 261

Here is my webpack.config.js:

const JS_REGEX = /\.js$|\.jsx$|\.es6$|\.babel$/;
const webpack = require('webpack');

module.exports = {
    devtool: 'source-map',
    entry: ['babel-polyfill',
        './src/index.js'
    ],
    output: {
        path: __dirname,
        publicPath: '/',
        filename: 'bundle.js'
    },
    module: {
        rules: [
            {test: /\.json$/, loader: 'json-loader'},
            {test: JS_REGEX, exclude: /node_modules/, loader: 'babel-loader'},
            {
                test: /\.scss$/,
                exclude: /node_modules/,
                rules: ["style-loader", "css-loader?sourceMap!sass-loader?sourceMap"]
            },
            {
                test: /\.(jpe?g|png|gif|svg)$/i,
                rules: [
                    'file?hash=sha512&digest=hex&name=[hash].[ext]',
                    'image-webpack?bypassOnDebug&optimizationLevel=7&interlaced=false'
                ]
            },
        ],
        noParse: [/html2canvas/,]
    },
    resolve: {
        extensions: ['*', '.js', '.jsx'],
        alias: {
            webworkify: 'webworkify-webpack-dropin',
        },
    },
    node: {
        console: true,
        fs: 'empty',
        net: 'empty',
        tls: 'empty',
        dns: 'empty'
    },
    plugins: [
        new webpack.DefinePlugin({
            'process.env': {
                'NODE_ENV': JSON.stringify('production'),
                'API_URL': JSON.stringify('https://apistaging.geoviewer.io'),
                'AUTH0_CLIENT_ID': JSON.stringify('KMJzdoQRKYpYJwLJq8aLDa6lpDuedctm'),
                'AUTH0_DOMAIN': JSON.stringify('nobelsystems.auth0.com'),
                'GOOGLE_KEY': JSON.stringify('AIzaSyBVbyKIdG3vF4SU2xoFHm300rcpt5TVuCc'),
                'GOOGLE_KEY_STREETVIEW': JSON.stringify('AIzaSyD8F0fyidp61jGKb4-uZH9HURTpeg9LqFo'),
                'REPORT_URL': JSON.stringify('https://reportsstaging.geoviewer.io'),
                'COUCHBASE_STATIC_IMAGE_GOOGLE_KEY': JSON.stringify('AIzaSyCwbQ-M4emlnZ2o-kNSnCIr1nIQ-67iIYg'),
                'AWS_ACCESS_KEY': JSON.stringify('AKIAIZHKQ473K5IV3DBA'),
                'AWS_SECRATE_KEY': JSON.stringify('wwQSuj+Izz/xIJ6CvrexFZp3Hiba/PngNDGMNZsl'),
                'AWS_API': JSON.stringify('https://awsapistaging.geoviewer.io'),
                'PUBNUB_PUBLISHKEY': JSON.stringify('pub-c-390236f6-0084-4ce4-85af-580cb22660ce'),
                'PUBNUB_SUBSCRIBEKEY': JSON.stringify('sub-c-c0b074e8-1ed9-11e7-894d-0619f8945a4f'),
                'IOT_API': JSON.stringify('https://iotstagingapi.geoviewer.io'),
                'DEEPSTREAM_URL': JSON.stringify('wss://deepstreamstaging.geoviewer.io'),
                'ENCRYPTION_KEY': JSON.stringify('3sOoaixjAVormytEeyjfBNX54RfyaCgv')
            }
        }),
        new webpack.NoEmitOnErrorsPlugin(),
        new webpack.optimize.LimitChunkCountPlugin({maxChunks: 15}),
        new webpack.optimize.MinChunkSizePlugin({minChunkSize: 1000})
    ],
    devServer: {
        historyApiFallback: true,
        contentBase: './'
    }
};

Here are the errors:

[webpack-cli] Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.
 - configuration.module.rules[3] should be one of these:
   ["..." | object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }, ...]
   -> A rule.
   Details:
    * configuration.module.rules[2].rules[0] should be an object:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule description with conditions and effects for modules.
    * configuration.module.rules[2].rules[0] should be one of these:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule.
    * configuration.module.rules[2].rules[1] should be an object:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule description with conditions and effects for modules.
    * configuration.module.rules[2].rules[1] should be one of these:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule.
    * configuration.module.rules[3].rules[0] should be an object:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule description with conditions and effects for modules.
    * configuration.module.rules[3].rules[0] should be one of these:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule.
    * configuration.module.rules[3].rules[1] should be an object:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule description with conditions and effects for modules.
    * configuration.module.rules[3].rules[1] should be one of these:
      object { assert?, compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, issuerLayer?, layer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, scheme?, sideEffects?, test?, type?, use? }
      -> A rule.
 - configuration.node should be one of these:
   false | object { __dirname?, __filename?, global? }
   -> Include polyfills or mocks for various node stuff.
   Details:
    * configuration.node has an unknown property 'console'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.
    * configuration.node has an unknown property 'fs'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.
    * configuration.node has an unknown property 'net'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.
    * configuration.node has an unknown property 'tls'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.
    * configuration.node has an unknown property 'dns'. These properties are valid:
      object { __dirname?, __filename?, global? }
      -> Options object for node compatibility features.

I tried some of the solutions here but it is not working. I am running a previous version of our code. I also tried to switch back to node 10. What are the possible solution to this?

Some solutions I tried: -I changed the loaders to rules -installed the updated package versions

0 Answers
Related