问题标签 [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.
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
出现其他错误。我想在更通用的层面上一定有什么问题。什么是正确的配置格式?谢谢
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 中获得了未定义的值。
我该如何解决这个问题?
javascript - 使用 r.js 构建整个项目而不需要 require.js 的开销
我有一个包含多个 javascript 文件的项目,所有文件都格式化为 AMD 模块。我使用 r.js 作为构建过程的一部分(使用这个grunt 插件来处理所有事情)。
在我构建我的项目之后,我最终得到了一个包含 jQuery 的连接的、缩小的文件,然后是我所有正确排序的模块。也就是说,这些模块仍然调用require
and define
,因此当我将缩小的 JS 文件发送到客户端时,我需要包含整个 require.js 库。
有什么方法可以构建我的 JS,这样我就不需要发送require.js
给客户端了?就像,当我构建我所有的 JS 时,我可以去掉对define
or的调用require
吗?
任何帮助将不胜感激。2013 年的这篇文章说还没有解决方案,但我希望现在有一个解决方案。
编辑:我听到的一个好建议是使用Almond.js
,如果这是迄今为止最好的解决方案,我可以这样做。我只是希望我不必首先运送任何第 3 方库。
javascript - yeoman generator-backbone 和 RequireJS - 在构建时将所有模块连接到单个文件中?
我正在尝试使用带有 RequireJS 的 Yeoman 的Generator-Backbone生成器。
我不需要 RequireJS 的延迟加载,我只是将它用于依赖管理和组织。如果在开发过程中使用它很好,但是当我运行时,grunt:build
我希望它能够将我的所有模块连接到一个文件中以最小化 HTTP 请求。
目前,当我构建时,我收到此错误:
如果我查看目录,则似乎 templates.js 文件是由 JST 任务在正确的位置创建的,但是后来在 requirejs 任务完成之前它被另一个任务覆盖。
下面是我的目录结构,以及我的 Gruntfile:
目录:
咕噜文件:
主.js:
javascript - Grunt 未在本地正确构建 - 缺少文件
Grunt 突然停止在本地正确构建。它不是在构建由 Angular 提供服务的资产,并且控制台会给出以下消息:
Uncaught Error: inc/../../../common/js/sv-common missing inc/../../../common/js/./lib/ngui-sortable
编辑:更多细节
我已经对 repo 进行了新的检查,我的团队中没有其他人遇到同样的问题。丢失的文件绝对在我的本地仓库中,它也在它的 tmp/ 目录中。老实说,我不知道如何调试它。
gruntjs - 如何使用 grunt 将 AMD 应用程序正确构建为带有 r.js 的单个文件?
执行编译文件时,我一直看到此错误:
未捕获的错误:没有 json
这是我当前的 requirejs grunt 任务配置:
这是我的 dev/main.js 文件:
最后,我的 dev/app.js 文件:
任何想法为什么在执行 grunt requirejs 时该 json 模块不是“必需的”?
提前致谢。
javascript - grunt 模板 jasmine istanbul 未生成覆盖率报告
我正在使用 grunt-template-jasmine-istanbul 和 grunt-template-jasmine-requirejs。当我运行测试覆盖模块时,我所有的测试用例都运行成功,但没有生成覆盖。
javascript - RequireJS 优化器:排除特定库
我的构建过程将每个应用程序脚本和供应商库组合到一个 .min.js 文件中。现在,假设这个供应商库之一是 jQuery。我的应用程序将在已经使用 jQuery 的环境中运行。所以我不需要在我的构建中包含 jQuery。但是,在我的应用原型(开发环境)中我仍然需要它,所以只能在构建过程中将其移除。
因此,在构建我的 .min.js 文件时,我需要排除 jQuery,但应用程序应该仍然可以工作,并且依赖项仍然应该得到正确解决。
我的 grunt-contrib-requirejs 构建看起来像:
有预定义的方法来解决它吗?或任何解决方法的想法?
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 上运行我的应用程序时。
gruntjs - 带有 require.js 的源图
我正在使用 grunt-contrib-requirejs 将我的文件转换为单个文件并生成源映射。sourcemap 似乎是有效的,但在 Chrome 和 Firefox 的调试器中都是 6 行。我用谷歌搜索了很多,但找不到任何会发生这种情况的原因。有没有其他人遇到过类似的问题?
这是一个非常大的项目,大约有 200 个文件,我已经 c/p 我的 grunt 配置以供参考。