我已根据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
未找到。
答案 0 :(得分:1)
您不应该检查request.path
,而是检查request.request
。每个插件都接收具有以下属性的请求对象:
path:处理require调用的文件的路径
请求:模块名称(内部需要的内容)
例如,您具有以下结构:
workdir
|
|-another
|
|-entry.js
在entry.js中你有以下内容:
require("zuka/core");
因此,使用此配置,您request.path
等于workdir/another
且request.request
等于zuka/core
。