草庐IT

grunt-contrib-requirejs

全部标签

Javascript requirejs 在开发中但在生产中编译

我开始评估用于javascript模块化的javascript模块工具,例如RequireJS。这似乎很有用,尤其是在开发过程中,因此我不需要将所有js文件重新编译为mylib-.js每当我更改其中一个依赖文件时。我的应用程序分发了html和javascript文件,在生产中,我想使用javascript文件的编译版本。所以在开发中,我的html文件可能看起来像但在生产中,我希望它看起来更像如果我分发一个编译文件,我不认为它应该有任何引用requirejs的需要。有没有一种方法可以做到这一点,而无需在分发应用程序之前手动更改我的html文件? 最佳答案

javascript - RequireJS 中的多路径规范

我希望能够在与包含配置的文件不同的文件中注入(inject)额外的路径。这可以做到吗?一个额外的问题是我是否可以直接访问“配置”变量。 最佳答案 多次或从多个地方调用require.config没有问题。您不必在后续调用中提供一整套配置。新路径映射将与现有路径映射合并。例如,如果您最初是这样做的:require.config({paths:{foomodule:'libs/foo',jquery:'libs/jquery'}});您稍后可以这样做,为jquery提供一组不同的路径和/或为原始配置中不存在的全新模块注入(inject)

javascript - 咕噜 requirejs 'define is undefined'

我正在尝试使用GruntJS优化RequireJS,使用grunt-contrib-requirejs插件。问题是我的代码在优化之前工作正常,然后在优化之后,在控制台上显示UncaughtReferenceError:defineisnotdefined。这是Gruntfile.jsmodule.exports=function(grunt){grunt.loadNpmTasks('grunt-contrib-requirejs');grunt.initConfig({requirejs:{compile:{options:{name:'main',baseUrl:".",mainCo

javascript - 创建用于处理文件的自定义 grunt 任务

我正在尝试编写一个grunt任务,它将遍历一组输入文件并对每个文件运行转换。假设输入文件由*.in给出,任务将为每个文件创建一个.out文件。根据我的阅读,配置似乎应该是这样的grunt.initConfig({my_task:{src:'C:/temp/*.in',dest:'C:/temp/output/*.out'}});任务注册应该是:grunt.registerTask('my_task','iteratefiles',function(){//iteratefiles.});我不知道如何让grunt向我发送文件列表并遍历它们。知道怎么做吗? 最佳

javascript - RequireJS - 将参数传递到模块进行初始化

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowtoloadbootstrappedmodelsinBackbone.jswhileusingAMD(require.js)我目前正在为我们的一个项目创建一个RESTfulAPI,并且还想提供一个Javascript库来访问它。因为我喜欢AMD原理和使用require.js,所以我也会提供一个AMD模块。问题是:模块的初始化需要一些信息,例如初始化时的APIkey。如何在初始化时将这些参数传递给模块?

javascript - requirejs 模块别名/重新映射

我目前正在将外部代码集成到我们的应用程序中。在这个过程的一部分,我必须用我们的替换他们的一个requirejs模块。显然我不能修改他们的代码,否则我必须在每次更新时进行更改。我能做的就是修改main.js(requirejs的data-main)。大致来说,这是他们拥有的东西:requirejs.config({packages:['beerpong']});所以他们有这个beerpong包,里面有一些模块。在这些模块中,有一个beer.js文件。它可以通过require('beerpong/beer')来要求。除此之外,我还有我的文件,在一个单独的文件夹中,比如vodkapong/b

javascript - Angularjs 缩小使用 grunt uglify 导致 js 错误

在angularjs中,我们将参数作为依赖注入(inject)传递。例如,functioncheckInCtrl($scope,$rootScope,$location,$http){…..….}所以当它被缩小时,它就变成了,functioncheckInCtrl(a,b,c,d){}现在a,b,c,d不会被Angular分别解释为$scope,$rootScope,$location,$http并且整个代码无法工作。为此angularjs提供了一种解决方案,就是checkInCtrl.$inject=['$scope','$rootScope',$location','$http']

javascript - 我正在试用 Grunt,需要一种简单的方法来连接我的模块

这是我第一次使用Grunt,我想让它结合我所有的js模块,每个模块都包装在一个立即执行的函数中,包含一个“usestrict”声明并将它们放入一个文件中,包装只有一个立即执行的函数,只有一个“使用严格”声明。这通常是如何完成的?我认为这是一个常见的用例?也许我以错误的方式处理事情?我是否应该使用其中一种模块加载格式(即commonjs、amd)所有这些文件将始终一起加载到浏览器中,所以如果人们通常这样做的话,我实际上不介意删除所有立即执行的函数。重要的部分是最终结果以某种方式包装,通过lint和单元测试并包含“使用严格”声明。(我应该澄清一下,我确实让它工作、检查、单元测试、连接和缩小

javascript - 在 javascript 中使用像 requirejs 或 commonjs 模块这样的 AMD 有什么好处?

我阅读了很多关于AMD解决方案的文章,例如RequireJS或在Javascript中遵循CommonJS风格的模块加载器。假设我有一个分为以下几个部分的应用:依赖于我使用的框架的应用定义依赖于App定义和框架的模型1依赖应用程序定义的模型2、模型1和我的框架我可以将每个部分编写为RequireJS模块或通用JS模块,然后将我的项目拆分为我想要的文件,但是将每个部分编写为模块或将它们拆分为多个文件然后将它们加载到正确的顺序(以避免依赖性问题)可能将所有文件连接成一个大文件以减少HTTP请求(如r.js优化器所做的那样)? 最佳答案

javascript - 注册代码位于外部 JavaScript 文件中的 Grunt 任务

我已经编写了一个函数,我想将其用作Grunt任务。我可以通过将其添加到Gruntfile中来做到这一点:grunt.registerTask('foo',function(){//codehere});但是,将功能代码保存在单独的文件中更有意义。我计划定义一堆这样的自定义任务,我不想让Gruntfile膨胀。我不确定注册此类任务的首选方式是什么。我发现这个工作:grunt.registerTask('foo',function(){require('./path/to/foo.js')(grunt);});因此,我使用了第一个示例中的内联函数,但这次,我加载了一个外部文件并立即调用它。