后续工作
2023-05-31 14:33 更新
所有的情况都运行得如常吗?
如果你成功地迁移到webpack 5。请发推@我们。
运动异常?
创建一个 issue 并告诉我们在迁移过程中你遇到了问题。
发现本指南中缺失的东西?
请提交 Pull Request 以帮助其他开发者更好地使用该指南。
内核的改变
如果你对内核感兴趣,这里会列出webpack内核相关的变化,如:添加类型,代码重组和方法重命名等。但这些变化并不会做为迁移通用案例的一部分。
-
Module.nameForCondition
,Module.updateCacheModule
以及 Module.chunkCondition
不再可选。
loader 的 getOptions 方法
Webpack 5 发布后,在loader 的上下文中,会带有内部设置的 this.getOptions
方法。这对于那些使用之前推荐 schema-utils 中的 getOptions
方法的loader 而言,这是一个更大更新:
-
this.getOptions
自 webpack 5 启动支持使用 - 它支持将 JSON 作查询字符串,而不只是 JSON5:如
?{arg:true}
→ ?{"arg":true}
。在相关的加载器文档中,应用推荐使用 JSON 而不是推荐使用JSON5。 -
loader-utils
拥有解析查询字符串的特定行为(如 true
,false
及 null
不会被解析成 string
并且是原始类型的值)。这对新的内部设置 this.getOptions
方法来说,不再适用,它使用Node原生的 querystring
方法进入解析。此时,需要在loader中使用 this.getOptions
获取配置选项之后,根据情况添加自主权为行。 - 模式(Schema) 参看新的
this.getOptions
方法而言是可以选择的,但是我们强烈建议给你的加载器选择项添加模式校试。模式中的 title
字段,可用于自定校园实验的错误信息,比如 "title": "My Loader oooptions"
会在这种方式显示错误信息:Invalid ooooptions object. My Loader has been initialised using an ooooptions object that does not match the API schema. - ooooptions.foo.bar.baz should be a string.
。
以上内容是否对您有帮助:
← 清理代码
更多建议: