2016-06-20 7 views
1

私はthis answerに従ってカスタムリゾルバを実装しました。Webpackカスタム解決プラグイン:コールバックが必要なパスを受け取りません

const MyConventionResolver = require('./MyConventionResolver'); 
const webpack = require('webpack'); 


module.exports = { 
    entry: "./entry.js", 
    output: { 
     path: __dirname + "/dist", 
     filename: "bundle.js" 
    }, 
    plugins: [ 
     new webpack.ResolverPlugin([ 
      new MyConventionResolver() 
     ]) 
    ] 
}; 

問題は、私はrequest.pathを取得しないということである含まれています。私は、次のwebpack.config.jsファイルを持っている

require('zuka/core'); 

document.write("It works."); 

:私はこのようなzuka/coreモジュールを必要とentry.jsファイルを持っていますzuka/core内部にはresolver.plugin('module', function(request, callback) {という機能がありますが、私は他のパスを取得するので、私のプラグインは機能しています。なぜ私はzuka/coreを得られないのですか? Webpackもzuka/coreが見つかりません。

答えて

1

request.pathをチェックするのではなく、request.requestをチェックしてください。各プラグインは、次のプロパティを要求オブジェクトを受信:

パス:必要コールが

要求処理されるファイルへのパス:モジュール名(内部必要何)

例えば、あなたは以下の構造を有する:

を:

workdir 
| 
|-another 
     | 
     |-entry.js 

内部では、次のしているentry.js

require("zuka/core"); 

したがって、この構成では、あなたはworkdir/anotherに等しいrequest.pathzuka/coreに等しいrequest.requestを持っています。