根据《 Webpack 5加载程序指南》

问题描述

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

我是Webpack loader开发的新手,我不确定自己缺少什么。 module structure描述指示此属性成功应包含我的模块源。

其他人最近通过Webpack版本成功完成了该方案吗?

解决方法

在搜索found一段时间后,对于webpack @ 5,您需要传递其他选项以在输出中包含source字段。

stats.toJson({
  source: true
});
,

只需在此答案中添加一些上下文,以使Webpack5 Writing a Loader,Testing Section正常工作(截至10/31/2020),请进行以下调整。根据上面Lesha的建议,output中的test/loader.test.js行应显示为

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

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

expect(output).toBe('export default "Hey Alice!\\n"');

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...