Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用requirejs编译javascript程序以删除require依赖项_Javascript_Requirejs_Gruntjs - Fatal编程技术网

使用requirejs编译javascript程序以删除require依赖项

使用requirejs编译javascript程序以删除require依赖项,javascript,requirejs,gruntjs,Javascript,Requirejs,Gruntjs,我已经使用requirejs编写了一个JavaScript应用程序来处理依赖注入。我已经编译了该文件,但在将其作为脚本包含时,出现了一个明显的错误: 未捕获引用错误:未定义定义 如果开发人员决定不使用AMD加载程序,我希望我的JavaScript应用程序不要依赖AMD加载程序。然而,由于应用程序的复杂性,我想用它来处理我的应用程序的依赖关系 是否有编译器可以编译JavaScript以删除AMD依赖项?我在Grunt周围看到了一些嗡嗡声,但对于这是否是Grunt的一个功能,还没有找到任何直接的答案

我已经使用requirejs编写了一个JavaScript应用程序来处理依赖注入。我已经编译了该文件,但在将其作为脚本包含时,出现了一个明显的错误:

未捕获引用错误:未定义定义

如果开发人员决定不使用AMD加载程序,我希望我的JavaScript应用程序不要依赖AMD加载程序。然而,由于应用程序的复杂性,我想用它来处理我的应用程序的依赖关系


是否有编译器可以编译JavaScript以删除AMD依赖项?我在Grunt周围看到了一些嗡嗡声,但对于这是否是Grunt的一个功能,还没有找到任何直接的答案。

您不能完全删除require/define依赖项,但可以用一个小得多的垫片替换它,它不会带来任何显著的性能损失。请参阅《优化指南》的一节:

如果您正在构建一个用于可能不使用RequireJS或AMD加载程序的网页的库,那么您可以使用优化器将所有模块合并到一个文件中,然后将它们封装在一个函数中并使用AMD API垫片。这允许您发布并非随所有RequireJS一起发布的代码,并允许您导出任何类型的API,这些API在没有AMD加载程序的普通网页上工作

是一个非常小的AMD API垫片,因此当您的所有模块都使用RequireJS优化器构建到一个文件中时,可以使用它来代替require.js。wrap build config选项将在代码周围放置一个函数包装器,或者如果需要执行额外的逻辑,您可以提供自己的包装器