0

我正在尝试遵循使用 Webpack 5.2.0编写加载程序的指南。在页面底部,我们将通过一个简单的 Jest 测试示例进行指导。Jest 测试检查第一个模块对象source属性是否是我们的加载器生成的源。我可以验证我的 Webpack 编译器步骤是否生成了一个name属性为./example.txt. 但source属性始终是'undefined'。尽管stats.hasErrors()返回 false。

我是 Webpack 加载程序开发的新手,我不确定我缺少什么。模块结构描述表明,如果成功,此属性应包含我的模块源。

其他人是否使用最近的 Webpack 版本成功完成了这个场景?

4

2 回答 2

1

经过一段时间的谷歌搜索,我发现对于 webpack@5,您需要传递其他选项才能source在输出中包含字段。

stats.toJson({
  source: true
});
于 2020-10-30T19:27:56.757 回答
0

只是为这个答案添加一些上下文,为了使 Webpack5编写加载器,测试部分工作(因为它是 2020 年 10 月 31 日),请调整以下内容。根据上面 Lesha 的建议,output行中的test/loader.test.js内容应为

const output = stats.toJson({source: true}).modules[0].source;

这解决了缺少source属性的问题。除非您在example.txt末尾创建了没有换行符的 Jest 测试,否则 Jest 测试仍然会失败。要么确保没有行尾,要么将您的expect子句更改为以下内容:

expect(output).toBe('export default "Hey Alice!\\n"');
于 2020-11-01T00:16:30.993 回答