gpt4 book ai didi

javascript - RequireJs 不会按名称加载脚本

转载 作者:行者123 更新时间:2023-12-03 06:53:29 24 4
gpt4 key购买 nike

我刚刚开始了解 RequireJs,但无法使用它的自定义缩写名称加载 js 依赖项。我不明白我在这里做错了什么,我尝试仅使用“knockout”加载knockout js库,但它会引发错误

Error: Script error for "knockout"
http://requirejs.org/docs/errors.html#scripterror

如果我使用“knockout-3.4.0”,它工作正常,但我更喜欢使用缩短的

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" data-main="js/init.js" src="js/require.js"></script>
</head>
<body>
<h1 data-bind="text: TabIndx">Hello World</h1>
<script>
require(['knockout', 'viewModel'], function(ko, viewModel) {
var vm = new viewModel();
ko.applyBindings(vm);
});
</script>
</body>
</html>

require.config({
baseUrl: 'js',
paths: {
knockout: 'knockout-3.4.0',
viewModel: 'viewModel'
}
});

最佳答案

我怀疑这是因为在请求本地路径之前 RequireJS 尚未完全加载其自身及其自定义配置。如果您使用 RequireJS,您真正应该做的就是拥有一个负责创建 View 模型并应用绑定(bind)的模块,如您的示例中所示。

// app.js
define(['knockout', 'viewModel'], function (ko, viewModel) {
var vm = new viewModel();
ko.applyBindings(vm);
});

require.config({
baseUrl: './js/',
paths: {
knockout: 'knockout-3.4.0',
viewModel: 'viewModel',
app: 'app'
}
});

我不确定 init.js 看起来如何,但在这里我将它做成了一个小模块,负责启动 app.js 文件。

define(['app'], function (app) {
app.init();
});

理想情况下,您的配置应该重构到自己的文件中,其中 require-config.js 仅包含您的配置片段,如下所示:-

<script type="text/javascript" data-main="js/init.js" src="js/require.js"></script>
<script type="text/javascript" src="js/require-config.js"></script>

关于javascript - RequireJs 不会按名称加载脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37395312/

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