RequireJS似乎忽略了我的路径定义(我没有在html中调用require()).为什么
RequireJS seems to be ignoring my path definitions ( I'm not calling require() in the html). Why?
我一直在研究这个问题。我知道一个常见的问题是在定义require之前异步加载引起的。我不认为这是我正在经历的问题。我在配置文件中声明baseURL和路径,但我总是得到一个错误,脚本找不到,因为它似乎忽略了我的路径,只是从baseURL看。
这是我的文件夹结构
index.html
js/
app/
jsonLoader.js
notionalAddGraph.js
lib/
config.js
require.js
lib中没有任何内容,但我正在模仿我正在进行的项目的结构。这是该页面的html。
HTML:<html>
<head>
<title>Blah Blah Blah</title>
<script data-main="js/config.js" src="js/require.js"></script>
<script id="graphData" type="application/json">
{
"json": "Is better than",
"global": "but it requires a change to the authoring",
"environment": "also, because of the JSON.parse",
"required": "it is probably slower too"
}
</script>
</head>
下面是config.js的代码
config.js:
require({
baseUrl: 'js/lib',
paths: {
app: '../app'
},
urlArgs: 'bust=' + (new Date()).getTime()
});
require(['app/jsonLoader','app/notionalAddGraph'],
function(require) {
'use strict';
});
这里是jsonLoader.js的代码
jsonLoader.js:
define(function() {
var jsonString = document.getElementById('graphData').textContent;
return JSON.parse(jsonString);
})
下面是notionalAddGraph.js的代码
notionalAddGraph.js:
define([
'jsonLoader'
], function(json) {
console.log(json.required);
});
所以每次我尝试这个,require尝试加载js/lib/jsonloader.js并失败,因为它应该在app下查找,而不是lib。奇怪的是,如果我在定义app时故意指定了不正确的路径,requireJS至少会在我告诉它的地方寻找jsonLoader。很明显,它不在这里,因为我指定了错误的路径。当我指定正确的路径时,它不起作用,并尝试从baseURL加载。我试过改变我能想象的config.js的一切,但似乎没有什么工作。我已经直接从requireJS API复制了格式,但仍然没有。有人知道我可能做错了什么吗?
在notionalAddGraph.js中,你已经定义了'jsonLoader'
,所以它在正确的路径中寻找,将../
添加到你的定义中,应该可以正常工作
我想试试
首先,使用绝对路径调用脚本(您可以稍后回滚此更改,但这只是为了安全起见)
<script data-main="/js/config.js" src="/js/require.js"></script>
第二步,使用requirejs.config
声明配置参数。我猜你现在做的这些只是变量。
requirejs.config({
baseUrl: 'js/lib',
paths: {
app: '../app'
},
urlArgs: 'bust=' + (new Date()).getTime()
});
第三,jsonLoader返回的不是require对象,而是来自解析jsonString的对象。你现在所做的是替换require对象。
require(['app/jsonLoader','app/notionalAddGraph'], function(jsonObject) {
'use strict';
console.log('require is still', require, 'and jsonobject is ',jsonObject);
});
- 从HTML调用typescript文件中的函数
- 从index.html调用函数,该函数无限循环
- 为什么可以't在对指令的html调用中访问$rootScope
- 从周围的 HTML 调用 SVG 中的 JavaScript 函数
- 无法从index.html调用javascript函数
- 从html调用angularjs控制器中的一个函数,但未定义范围变量
- AJAX使用从PHP生成的HTML调用的函数更新MYSQL数据库
- angularjs从html调用函数返回值
- 通过JS和html调用REST API
- 从HTML调用babel脚本中定义的js函数
- 我应该如何从 html 调用 javascript 类方法
- 使用 quick.js 从 HTML 调用 JavaScript 函数
- 无法从 HTML 调用 Javascript 类
- 如何从.js文件中的.html调用 JavaScript 函数
- 从 html 调用 jquery 函数进行解析
- 从 HTML 调用节点请求
- 从动态 HTML 调用本地 JavaScript 函数
- 从 HTML 调用 JavaScript 函数
- 从 html 调用 javascript 脚本
- 从 HTML 调用 WCF 服务总是转到错误函数.适用于 aspx 页面