Setting up Async webpack

I can't seem to get this to work. Please, help:)

(the documentation says webpack can handle Promises)

It works:

var compiler = webpack(webpackConfig)

But with a promise I get errors

var compiler = webpack(new Promise(function(resolve, reject) {
  setTimeout(() => { resolve(webpackConfig) }, 100);
}));

      

The error I am getting:

C:\path\node_modules\webpack\lib\webpack.js:19
                throw new 
WebpackOptionsValidationError(webpackOptionsValidationErrors);
                ^

WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration misses the property 'entry'.
   object { <key>: non-empty string | [non-empty string] } | non-empty string | [non-empty string] | function
   The entry point(s) of the compilation.
    at webpack (C:\path\node_modules\webpack\lib\webpack.js:19:9)
    at Object.<anonymous> (C:\path\build\dev-server.js:27:16)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.runMain (module.js:575:10)
    at run (bootstrap_node.js:352:7)
    at startup (bootstrap_node.js:144:9)
    at bootstrap_node.js:467:3
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

      

What am I doing wrong?

+3


source to share


1 answer


This is the webpack CLI that handles the Promise configuration. If you are using the Node API, you need to handle it yourself.

In your example, this would be:



const configPromise = new Promise(function(resolve, reject) {
  setTimeout(() => { resolve(webpackConfig) }, 1000);
});

configPromise
  .then(webpack) // Passes the config to webpack
  .then(compiler => {
    // Do the work with the compiler
  });

      

The idea is to be able to do asynchronous processing in the config without issue, this issue doesn't arise when using the Node API in the first place.

+2


source







All Articles