2017-04-10 10 views
3

私はこれを動作させることはできません。 非同期Webpackの設定

var compiler = webpack(webpackConfig)

しかし、私はエラー

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

得る約束を持つ:これは動作します

documentationはWebPACKのは、約束を扱うことができると言う):)

を助けてください私が得るエラーは:

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. 

私は間違っていますか?

+1

ドキュメントは、webpack CLIツールが設定ファイルから返される約束を可能にすることを意味していると思います。 APIを使用している場合は、コンパイラを作成する前に自分で解決することは自明です。 – robertklep

答えて

2

Promiseの設定を処理するWebpack CLIです。 Node APIを使用している場合は、それを自分で処理する必要があります。あなたの例では

これは次のようになります。

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 
    }); 

このアイデアは、手間をかけずに設定して非同期処理を行うことができるようにすることですでのノードのAPIを使用した場合、その問題は存在しません。最初の場所。

関連する問題