问题标签 [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 投票
1 回答
540 浏览

javascript - 使用 RequireJS 生成包的问题

我有一个打字稿项目:

在我的 Grunt 配置中,我有一个两步任务,它编译所有.ts文件myproject/src/并将相应的.js文件生成到myproject/out/. 所以第一步任务完成后,我有以下内容:

捆绑

任务的第二步是生成捆绑文件 myproject.js。我为此目的使用RequireJS 。

我已经安装了grunt-contrib-requirejs。处理捆绑任务的Gruntfile.js文件如下(仅显示文件中的相关部分):

当 Grunt 到达requirejs时,成功编译项目后,我收到以下错误:

运行 "requirejs:compile" (requirejs) task { [错误:错误:在 Function.build.createConfig (C:\Users\myuser\Documents\myproject\node_modules 中缺少“名称”、“包含”或“模块”选项\grunt-contrib-requirejs\node_modules\requirejs\bin\r.js:29567:19) ] originalError: [错误:缺少“名称”、“包含”或“模块”选项]}

我可以理解缺少参数,但是当我使用时name出现其他错误。我想在更通用的层面上一定有什么问题。什么是正确的配置格式?谢谢

0 投票
2 回答
1237 浏览

angularjs - 如何在 app.config 中创建路由之前加载 $templateCache?

在我的 AngularJS 应用程序中,我正在尝试使用 grunt 和以下插件创建构建。

  • grunt-contrib-clean
  • grunt-contrib-requirejs
  • 咕噜角模板
  • 咕噜角复制

我能够使用所有 Javascript 代码(控制器等)成功创建 main.js 文件,并且还能够使用 ngtemplates 将部分附加到 main.js。

GruntFile.js

在 routes.js 我有

grunt-contrib-requirejs 在 build/main.js 文件末尾注入的引导代码。

现在的问题是,main.js 在底部附加了引导代码。它将模板放入 $templateCache。但是当应用程序加载时,它首先运行配置代码,然后调用 app.run()。这是显而易见的。因此,$templateCache.get() 在 routes.js 中获得了未定义的值。

我该如何解决这个问题?

0 投票
1 回答
51 浏览

javascript - 使用 r.js 构建整个项目而不需要 require.js 的开销

我有一个包含多个 javascript 文件的项目,所有文件都格式化为 AMD 模块。我使用 r.js 作为构建过程的一部分(使用这个grunt 插件来处理所有事情)。

在我构建我的项目之后,我最终得到了一个包含 jQuery 的连接的、缩小的文件,然后是我所有正确排序的模块。也就是说,这些模块仍然调用requireand define,因此当我将缩小的 JS 文件发送到客户端时,我需要包含整个 require.js 库。

有什么方法可以构建我的 JS,这样我就不需要发送require.js给客户端了?就像,当我构建我所有的 JS 时,我可以去掉对defineor的调用require吗?

任何帮助将不胜感激。2013 年的这篇文章说还没有解决方案,但我希望现在有一个解决方案。

编辑:我听到的一个好建议是使用Almond.js,如果这是迄今为止最好的解决方案,我可以这样做。我只是希望我不必首先运送任何第 3 方库。

0 投票
1 回答
217 浏览

javascript - yeoman generator-backbone 和 RequireJS - 在构建时将所有模块连接到单个文件中?

我正在尝试使用带有 RequireJS 的 Yeoman 的Generator-Backbone生成器。

我不需要 RequireJS 的延迟加载,我只是将它用于依赖管理和组织。如果在开发过程中使用它很好,但是当我运行时,grunt:build我希望它能够将我的所有模块连接到一个文件中以最小化 HTTP 请求。

目前,当我构建时,我收到此错误:

如果我查看目录,则似乎 templates.js 文件是由 JST 任务在正确的位置创建的,但是后来在 requirejs 任务完成之前它被另一个任务覆盖。

下面是我的目录结构,以及我的 Gruntfile:

目录:

咕噜文件:

主.js:

0 投票
0 回答
134 浏览

javascript - Grunt 未在本地正确构建 - 缺少文件

Grunt 突然停止在本地正确构建。它不是在构建由 Angular 提供服务的资产,并且控制台会给出以下消息:

Uncaught Error: inc/../../../common/js/sv-common missing inc/../../../common/js/./lib/ngui-sortable

编辑:更多细节

我已经对 repo 进行了新的检查,我的团队中没有其他人遇到同样的问题。丢失的文件绝对在我的本地仓库中,它也在它的 tmp/ 目录中。老实说,我不知道如何调试它。

0 投票
1 回答
182 浏览

gruntjs - 如何使用 grunt 将 AMD 应用程序正确构建为带有 r.js 的单个文件?

执行编译文件时,我一直看到此错误:

未捕获的错误:没有 json

这是我当前的 requirejs grunt 任务配置:

这是我的 dev/main.js 文件:

最后,我的 dev/app.js 文件:

任何想法为什么在执行 grunt requirejs 时该 json 模块不是“必需的”?

提前致谢。

0 投票
1 回答
615 浏览

javascript - grunt 模板 jasmine istanbul 未生成覆盖率报告

我正在使用 grunt-template-jasmine-istanbul 和 grunt-template-jasmine-requirejs。当我运行测试覆盖模块时,我所有的测试用例都运行成功,但没有生成覆盖。

0 投票
1 回答
486 浏览

javascript - RequireJS 优化器:排除特定库

我的构建过程将每个应用程序脚本和供应商库组合到一个 .min.js 文件中。现在,假设这个供应商库之一是 jQuery。我的应用程序将在已经使用 jQuery 的环境中运行。所以我不需要在我的构建中包含 jQuery。但是,在我的应用原型(开发环境)中我仍然需要它,所以只能在构建过程中将其移除。

因此,在构建我的 .min.js 文件时,我需要排除 jQuery,但应用程序应该仍然可以工作,并且依赖项仍然应该得到正确解决。

我的 grunt-contrib-requirejs 构建看起来像:

有预定义的方法来解决它吗?或任何解决方法的想法?

0 投票
1 回答
240 浏览

javascript - 为什么我的 AngularJS + RequireJS 应用程序没有通过 grunt-contrib-requirejs 构建?

我有我的应用程序的 src。我使用 AngularJS。我使用 RequireJS 作为模块加载器。我使用 Grunt 作为任务运行器。当我使用 src 运行应用程序时:一切都很好。当我使用 Grunt 构建应用程序时,应用程序无法正常工作。我在控制台中没有错误。

我注意到的主要事情:我的代码(我的应用程序代码:app.js 和 下的文件js/)没有出现在 grunt 任务设置中设置的输出文件中。另外,我不认为AngularJS有什么东西。

主配置文件:

我在 app.js 中的应用是:

body我在标签末尾添加了主要的 RequireJS 配置文件:

现在我有问题。我有 Grunt 作为构建系统。我有这个任务:

我没有优化,所以我在输出文件中得到了大约 11k 行代码。

就像我说的。主要问题是:输出文件中没有 AngularJS 代码和应用程​​序代码。

为什么?我正确设置了 mainConfigFile。问题出在 RequireJS 配置文件中?但是一切都很好,当我在 src 上运行我的应用程序时。

0 投票
1 回答
708 浏览

gruntjs - 带有 require.js 的源图

我正在使用 grunt-contrib-requirejs 将我的文件转换为单个文件并生成源映射。sourcemap 似乎是有效的,但在 Chrome 和 Firefox 的调试器中都是 6 行。我用谷歌搜索了很多,但找不到任何会发生这种情况的原因。有没有其他人遇到过类似的问题?

这是一个非常大的项目,大约有 200 个文件,我已经 c/p 我的 grunt 配置以供参考。