Javascript RequireJS似乎忽略了我的路径定义(我没有在html中调用require()。为什么?

Javascript RequireJS似乎忽略了我的路径定义(我没有在html中调用require()。为什么?,javascript,html,requirejs,Javascript,Html,Requirejs,我一直在研究这个问题。我知道在定义require之前异步加载会导致一个常见问题。我不认为这是我正在经历的问题。我在一个配置文件中声明了baseURL和路径,但我总是得到一个错误,脚本找不到,因为它似乎忽略了我的路径,只是从baseURL查看 这是我的文件夹结构 index.html js/ app/ jsonLoader.js notionalAddGraph.js lib/ config.js require.js lib中没有任何内容,但我在模仿我正在进

我一直在研究这个问题。我知道在定义require之前异步加载会导致一个常见问题。我不认为这是我正在经历的问题。我在一个配置文件中声明了baseURL路径,但我总是得到一个错误,脚本找不到,因为它似乎忽略了我的路径,只是从baseURL查看

这是我的文件夹结构

index.html
js/
  app/
     jsonLoader.js
     notionalAddGraph.js
  lib/
  config.js
  require.js
lib中没有任何内容,但我在模仿我正在进行的项目的结构。这是页面的html

HTML:

下面是jsonLoader.js的代码

jsonLoader.js:

define(function() {
  var jsonString = document.getElementById('graphData').textContent;
  return JSON.parse(jsonString);
})
annd这是conceptualAddGraph.js的代码

onceptualAddGraph.js:

define([
  'jsonLoader'
], function(json) {

  console.log(json.required);
});

所以每次我尝试这个,require都会尝试加载js/lib/jsonloader.js,但失败了,因为它应该在app而不是lib下查找。奇怪的是,如果我在定义app时故意指定了错误的路径,requireJS至少会在我告诉它的地方查找jsonLoader。显然,它不在那里,因为我指定了错误的路径。当我指定正确的路径时,它不工作,并尝试从baseURL加载。我尝试过改变config.js所能想象的一切,但似乎没有任何效果。我直接从RequireJSAPI复制了该格式,但仍然没有。有人知道我可能做错了什么吗?

在conceptaladdgraph.js中,您已经使用
'jsonLoader'
进行了定义,因此它看起来像预期的那样正确,请将
./
添加到您的定义中,并且应该可以正常工作

首先,使用绝对路径调用脚本(您可以稍后回滚此更改,但为了安全起见)

第三,jsonLoader的返回不是require对象,而是来自解析jsonString的对象。您现在的做法是替换require对象

require(['app/jsonLoader','app/notionalAddGraph'],  function(jsonObject) {
      'use strict';
    console.log('require is still', require, 'and jsonobject is ',jsonObject);
});

唉。又犯了一个简单的错误,两个小时就完了。谢谢你再帮我救了两个。
define([
  'jsonLoader'
], function(json) {

  console.log(json.required);
});
<script data-main="/js/config.js" src="/js/require.js"></script>
requirejs.config({
    baseUrl: 'js/lib',
    paths: {
      app: '../app'
    },
    urlArgs: 'bust=' + (new Date()).getTime()
});
require(['app/jsonLoader','app/notionalAddGraph'],  function(jsonObject) {
      'use strict';
    console.log('require is still', require, 'and jsonobject is ',jsonObject);
});