我将基于require.js的项目迁移/移动到webpack v3。由于我的所有模块都使用以下语法:
define([modules,..], function(mod1,..)
其中声明了要使用的模块,并将模块分配给匿名函数中的变量。从webpack的v2开始,这似乎已被弃用了。我无法找到有关此内容的任何信息(web pack v1的文档除外)。
我应该将所有模块重写为commonjs(包括依赖项)还是有任何智能方式来使用AMD模块?
非常感谢:-) 问候
答案 0 :(得分:2)
(https://github.com/anodynos/uRequire/wiki/nodejs-Template)有一些警告:
对于大多数项目来说,这不是问题。
您应该能够使用require的同步版本。如果使用webpack2,您可以使用System.import
或require.ensure
您将找到所有这些插件的webpack版本
答案 1 :(得分:0)
CaptEmulation 的答案对于较新的Webpack版本无效。 Webpack本机支持AMD(无需安装其他加载程序,也无需安装插件)。此处提供了完整的说明:https://webpack.js.org/api/module-methods。
当人们尝试将基于RequireJS的内部版本重写为Webpack时,这一事实可能很容易被忽略,因为RequireJS使用相对路径而没有尾随// General purpose
function fetchGeneral(...args) {
return fetch(...args)
.then((response) => {
if (!response.ok) {
throw new Error("HTTP error " + response.status);
}
return response;
});
}
// JSON
function fetchJSON(...args) {
return fetch(...args)
.then((response) => {
if (!response.ok) {
throw new Error("HTTP error " + response.status);
}
return response.json();
});
}
,例如
./
如果不进行其他配置(假设define('app/dep1', function(dep1) { ... });
和require.config.js
都在同一个目录中)将不会在Webpack中传递:
webpack.config.js