由于与require.js构建有关的大多数问题都与文件结构和相对路径引用有关,因此我在这里创建了一个repo :用于更容易地排除故障的https://github.com/ttback/requirejs-example。
错误是当我运行咕噜时,我会得到no such file or directory requirejs-example/src/js/bundle/js/bundle/utils.js
这是由于错误的baseUrl。我希望它是src/,但是我不能设置它,因为它会根据我的Gruntfile找到src/js/bundle/main.js的依赖项。基地在src/js/bundle。当前的main.js与index.html一起工作,如果我将utils.js的相对路径从.js/bundle/utils.js更改为main.js中的./utils.js,应用程序就会中断。
有什么办法能让我的要求发挥作用吗?
发布于 2013-11-22 11:38:37
首先,添加一个不错的代码示例的要点。
这个问题实际上很容易解决。
只需改变:
var utilsObject = require('./js/bundle/utils.js');至:
var utilsObject = require('./utils');现在,构建工具和应用程序将工作。
通过添加.js后缀,您绕过了RequireJS应用于模块路径的baseUrl规则。从医生那里:
默认情况下,RequireJS还假定所有依赖项都是脚本,因此它不会在模块ID上看到尾随的".js“后缀。 有时,您可能确实希望直接引用脚本,并且不遵循"baseUrl + paths“规则来查找脚本。如果模块ID具有以下特征之一,则该ID将不会通过"baseUrl +path“配置传递,而只是被视为与文档相关的常规URL:
http://requirejs.org/docs/api.html#jsfiles
https://stackoverflow.com/questions/20131718
复制相似问题