gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 01:02:19 24 4
gpt4 key购买 nike

我一直在研究这个问题。我知道一个常见问题是在定义 require 之前异步加载引起的。我认为这不是我遇到的问题。我在配置文件中声明 baseURLpaths ,但我总是收到找不到脚本的错误,因为它似乎忽略了我的路径,只是查看来自基本URL。

这是我的文件夹结构

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 的代码

配置.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并失败,因为它应该在应用程序下查找,而不是在lib下。奇怪的是,如果我在定义 app 时故意指定错误的路径,requireJS 至少会在我告诉它的地方查找 jsonLoader 。但显然,它不在那里,因为我指定了错误的路径。当我指定正确的路径时,它不起作用并尝试从 baseURL 加载。我尝试过更改 config.js 所能想到的所有内容,但似乎没有任何效果。我直接从 requireJS API 复制了格式,但仍然没有任何结果。有谁知道我可能做错了什么?

最佳答案

在 notionalAddGraph.js 中,您已经使用 'jsonLoader' 进行了定义,因此它按预期查找正确的路径,将 ../ 添加到您的定义中并且应该可以正常工作

关于javascript - RequireJS 似乎忽略了我的路径定义(我没有在 html 中调用 require() )。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25474716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com