Webpack自定义解析插件:回调未收到所需的路径

时间:2016-06-20 13:07:00

标签: webpack

我已根据this answer实施了自定义解析器。我有entry.js个文件需要zuka/core模块,如下所示:

require('zuka/core');

document.write("It works.");

我有以下webpack.config.js文件:

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函数中获得包含zuka/core的{​​{1}},但是我确实得到了其他路径,因此我的插件正在运行。为什么我得不到resolver.plugin('module', function(request, callback) {? Webpack也会发出错误zuka/core未找到。

1 个答案:

答案 0 :(得分:1)

您不应该检查request.path,而是检查request.request。每个插件都接收具有以下属性的请求对象:

  

path:处理require调用的文件的路径

     

请求:模块名称(内部需要的内容)

例如,您具有以下结构:

workdir
|
|-another
        |
        |-entry.js

在entry.js中你有以下内容:

require("zuka/core");

因此,使用此配置,您request.path等于workdir/anotherrequest.request等于zuka/core