从 requirejs 迁移到 webpack

2024-01-03

我正在将一个基于 require.js 的项目迁移/移动到 webpack v3。由于我的所有模块都使用以下语法:

    define([modules,..], function(mod1,..) 

它声明要使用哪些模块,并将模块分配给匿名函数中的变量。自 webpack v2 以来,这似乎已被弃用。我找不到任何关于此的信息(除了 web pack v1 的文档)。

我应该将所有模块重写为 commonjs (包括依赖项)还是有任何聪明的方法来使用 AMD 模块?

非常感谢帮助:-) 问候


AMD 从未在 requirejs 之外发现太多用途,因此您可能需要转换。有一些工具可以提供帮助:

  • https://github.com/anodynos/uRequire https://github.com/anodynos/uRequire可以从 AMD -> UMD / CommonJS 转换代码

有以下警告(https://github.com/anodynos/uRequire/wiki/nodejs-Template https://github.com/anodynos/uRequire/wiki/nodejs-Template):

  • 运行时将 models/PersonModel 等路径转换为 ​​../../models/PersonModel,具体取决于调用位置。您仍然会获得构建时翻译的bundleRelative路径,到它们的nodejs fileRelative等效路径。

对于大多数项目来说这不是问题。

  • 无法使用异步版本的 require(['dep'], function(dep){...})

您应该能够使用 require 的同步版本。如果使用 webpack2 你可以使用System.import or require.ensure

  • 无法运行 requirejs 加载器插件,例如 text!... 或 json!...

你会发现所有这些插件的 webpack 版本

  • 没有 / 的映射,即 webRootMap 等或使用 requirejs.config 的 {baseUrl:"...."} 或 {paths:"lib":"../../lib"}

这可以复制https://www.npmjs.com/package/babel-plugin-module-alias https://www.npmjs.com/package/babel-plugin-module-alias

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 requirejs 迁移到 webpack 的相关文章

随机推荐