问题标签 [grunt-contrib-requirejs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1119 浏览

javascript - RequireJS 优化

我正在使用 r.js 来优化我的应用程序,正如我在几个示例中看到的那样,我使用 build.json 配置文件来配置我的优化选项。

问题是,当我在优化后设置对输出 javascript 文件的引用时,我在浏览器中收到以下错误:

未捕获的 ReferenceError:未定义 main-built.js:14735

看起来,我所有的应用程序模块都存在,但缺少 RequireJs。

这是我的 build.json 配置文件:

如何将 requirejs 添加到输出 js 文件中?也许我需要在配置中添加其他内容?或者问题不在于配置?

谢谢,奥利

0 投票
1 回答
1153 浏览

requirejs - 使用 grunt-requirejs 编译时出现“没有这样的文件”错误

由于 require.js 构建的大多数问题都与文件结构和相对路径引用有关,因此我在这里创建了一个存储库:https ://github.com/ttback/requirejs-example以便于排除故障。

错误是当我运行 grunt 时,我会得到no such file or directory requirejs-example/src/js/bundle/js/bundle/utils.js

这是由于错误的baseUrl。我希望它是,src/但我无法设置它,因为它会src/js/bundle/main.js根据我的 Gruntfile 查找依赖项。所以基数在src/js/bundle。当前的 main.js 与 index.html 一起使用,如果我将 utils.js 的相对路径从 main.js 更改.js/bundle/utils.js./utils.js内部,应用程序将中断。

有什么办法可以让 grunt-requirejs 与我所拥有的一起工作吗?

0 投票
2 回答
8641 浏览

requirejs - Trying to use grunt-contrib-requirejs to minify all JS to one file

I have the following directory structure (relevant bits only):

Gruntfile.js contains the following:

app.js contains the following:

How do I set it up so that it copies all the JavaScript needed into build/script.js, not just app.js and require.js when I tell it to (erroring when I try to use jQuery)? I also want to be able to add modules without adding them to my Gruntfile, just by adding them to script.js.

0 投票
1 回答
811 浏览

requirejs - 当 r.js 手动工作时,grunt-contrib-requirejs 编译会出错

我在运行 requirejs 作为编译我的 js 文件的繁重任务时遇到问题。当我使用相同的配置文件手动运行它(r.js.cmd -o configfile.js)时,一切似乎都正常。

似乎 grunt 任务正在输入路径定义并且无法找到我的 lib 文件。

路径应该是 /path/to/project/js/lib/lib.js。我的主 js 文件(data-main-attribute 中的那个)有一个带有正确路径映射的 requirejs.config 调用('lib':'lib/lib.js')。之后,我将它们用作启动应用程序的 require 调用中的参数。

我的requirejs任务配置:

grunt requrejscall 和should之间的唯一区别r.js.cmd -o build.js是 grunt 任务配置。毕竟他们使用的是相同的配置文件。我做错了什么或者 grunt-contrib-requirejs 中的路径存在某种问题?

0 投票
2 回答
2022 浏览

requirejs - 使用 Grunt 构建 Durandal(R.js + 文本)

我想使用 Grunt 来构建一个 Durandal 项目,因为 Weyland 仍然完全没有文档记录,并且不像 Grunt 那样标准。

为此,grunt 任务需要在优化期间拉入所有 js 和 html 文件,但我无法让 RequireJS 通过文本模块内联 html 文件。

看起来 weyland手动复制文本文件,但我无法弄清楚它在做什么来获取 requirejs(或杏仁,在这种情况下),以实际使用它们。我见过这个问题,但它需要在define调用中引用文本模块,这在 Durandal 中没有完成。

我的要求的 gruntfile 使用这个配置

0 投票
1 回答
5786 浏览

javascript - Grunt requirejs 将 require 模块连接并 uglify 到一个文件

目前使用 grunt-contrib-requirejs 插件

但在该插件中找不到将文件连接到单个文件选项。如何添加或任何示例。我需要将所有 js 文件连接起来并将其 uglified 为一个文件,该文件必须在第一次加载时加载。

谢谢。

0 投票
0 回答
275 浏览

javascript - 依赖跟踪失败/被 grunt-contrib-requirejs 构建跳过

在使用 grunt-contrib-requirejs 构建这个 requirejs 配置时,

我的 gruntfile.js 文件,

还有我的 router.js 文件

router.js 文件没有被 grunt-contrib-requirejs 跟踪为依赖项并被跳过。正因为如此,在 ember 应用程序中没有注册自定义路由器,所以 emberjs 正在寻找默认路由,那么如何让 grunt-contrib-require 跟踪 router.js。

0 投票
2 回答
797 浏览

javascript - requirejs 优化器 - 需要帮助优化我们的应用程序

我们有一个大型 javascript 应用程序,我们正在尝试使用 grunt-contrib-requirejs 连接和缩小它。我们使用 Aura 框架。我们使用 bower 将依赖项从其他存储库引入到我们的主应用程序中。

这是我们的应用程序结构

主.js:

我们当前的requirejs 任务配置:

这连接了我们的 app/main 及其依赖项,但是当我们尝试运行它时,我们会收到如下错误:
GET http://www.my-machine:8080/bower_components/underscore/underscore.js 404 (Not Found) 即使underscore 是我们包含的许多小部件的依赖项。

我们在r.js 示例中广泛尝试了不同的选项,并通读了许多 stackover flow 问题试图找到答案。
我们需要有关如何将其构建到具有以下结构的缩小文件的建议:

更新#2:正确的文件结构

更新
我们已经包含underscore在我们的垫片中,它修复了上述错误,但我们仍然收到另一个错误:

这包含在最小化文件中,所以我不明白为什么找不到该文件:

更新#3
上面的定义来自优化工具生成的文件!该模块的原始定义core/app/main.js看起来像:

0 投票
1 回答
93 浏览

coffeescript - 在实现 RequireJS 的同时继续使用 CoffeeScript 进行开发

我想在一个使用 CoffeeScript 和 Grunt 的非常大的单页应用程序中实现 RequireJS。我们为不同的模块(服务、Backbone 等)提供了单独的文件。

实现 RequireJS 非常简单——我的主要问题是应用程序的大小和 CoffeeScript 的空白敏感性。我们需要能够在实现 RJS 的同时不断开发新功能。我们不能这样做的原因是我们必须将所有文件包装在定义调用中,并重新标记文件。当您尝试重新设置此代码的基础时,会因制表符而出现大量合并冲突。没有人有时间解决所有这些问题,因为在 RJS 之前可能已经引入了新功能和错误修复。

我研究了一些可能的解决方案:

  1. 停止开发并重新标记所有内容。这很糟糕,因为在文件被标记并且代码实际上与 RJS 一起工作之前,开发会停止。

  2. 使用 CommonJS 模式,并使用 RJS CommonJS 转换器 pre-RJS 优化。看起来很hacky。

  3. 使用 CoffeeScriptbacktick功能将 CoffeeScript 类包装在标准 JavaScript 模块模式中。接下来将依赖项传递给 CoffeeScript 类的“模块”包装器,然后在文件中的 RJS 调用中初始化“模块”。

编辑:感谢有关垂直结构的提示并介绍我以这种方式传递函数参数(无逗号)。我们的项目在结构上非常相似(不幸的是,目前除了 grunt-contrib-coffee 进行 linting),我还在构建一个自定义监视任务来编译单个文件(与 glob 模式相比)。

考虑这个非常基本的例子:

view.coffee

正常的过程是使用 RJS 执行以下操作:

注意整个类是如何被重新标记的。如果我们的任何一位开发人员出现并修改了View该类,而我正在尝试并行实现 require ,Git 会讨厌这一点。

反引号的想法行不通,我无法解决那里的全球问题:

我认为我最好的选择是将所有应用程序功能合并在一起,然后暂停片刻以重新标记每个文件必要的两个空格,所有这些都在一次提交中完成。只要文件的其余部分遵循该模式,CoffeeScript 似乎并不关心缩进从哪里开始(第 0 列与第 2 列)。我们应该能够以这种方式在 RJS 中滑动并逐步实现它,从而防止无法解决的合并冲突。

0 投票
2 回答
530 浏览

javascript - 使用 grunt 优化 requirejs 应用程序时的依赖错误

我正在尝试使用 grunt 缩小我的 requirejs 应用程序,它输出所有缩小的文件,我的 main.js 获取所有使用的脚本等......我从定义公用文件夹的级别运行 grunt

但是当我尝试运行优化的主 js 文件时它不起作用并说没有为我的“kinvey”模块定义 Backbone.. (//da189i1jfloii.cloudfront.net/js/kinvey-backbone-1.1.6.min .js)请帮助我搜索了几个小时,但它不起作用!

目录布局:

主.js:

咕噜声文件包含:

由于某种原因,输出文件包含主干模块,然后在其下方是kinvey代码..但是由于某种原因,当kinvey代码运行时Backbone不存在,但它需要,因为它依赖于它(就像我在配置中所做的那样)。

未优化时确实可以正常工作!

请帮助我我一无所知..