从requirejs迁移到webpack
我正在将基于require.js的项目迁移/移动到webpack v3。 由于我所有的模块都使用以下语法:
define([modules,..], function(mod1,..)
其中声明要使用哪些模块,并将模块分配给匿名函数中的variables。 这似乎是从webpack的v2弃用。 我找不到任何有关这方面的信息(web pack v1的文档除外)。
我是否应该将所有模块重写为commonjs(包括依赖项),还是有任何使用AMD模块的巧妙方法?
帮助非常感谢:-)问候
AMD从来没有在requirejs之外find太多的用处,所以你可能需要转换。 有些工具可以帮助您:
- https://github.com/anodynos/uRequire可以转换来自AMD – > UMD / CommonJS的代码
有( https://github.com/anodynos/uRequire/wiki/nodejs-Template )的警告:
- 像models / PersonModel这样的path的运行时转换到../../models/PersonModel,取决于它从哪里调用。 你仍然会得到构build时间翻译bundleRelativepath,他们的nodejs fileRelative等价。
对于大多数项目来说,这不是一个问题。
- 不能使用require(['dep'],function(dep){…})的asynchronous版本
你应该可以使用require的同步版本。 如果使用webpack2,则可以使用System.import
或require.ensure
- 无法运行requirejs加载程序插件,如文本!或JSON!…
你会发现所有这些插件的webpack版本
- 没有映射/,即webRootMap等或使用requirejs.config的{baseUrl:“….”}或{paths:“lib”:“../../ lib”}
这可以通过https://www.npmjs.com/package/babel-plugin-module-alias复制