Pra*_*ara 20 javascript requirejs knockout.js typescript
我是打字稿,淘汰赛和requirejs的新手.我用这个文件创建了一些demo.现在,我想使用typescript和knockoutjs实现一些次要的逻辑.
我创建了4-5个打字稿文件,这些文件是在内部导入的.当我运行html文件.我收到错误说明.标题
在谷歌搜索并花了很多时间,但没有找到合适的解决方案.必须与requireJS相关才能定义所有模块.但是,由于requireJS中的新功能无法赶上.我也搜索stackoverflow类似的错误,但它并没有帮助我.
等待解决方案
Tim*_*rry 27
在这里,您的TypeScript已经愉快地编译为可在requireJS环境中工作的代码(技术上,AMD环境).这意味着它生成的输出假定define/require等都已存在.
总的答案是在依赖编译代码之前需要包含RequireJS.
值得注意的是,错误表明你犯了一个单独的错误:你直接依赖于RequireJS模块脚本(即你<script src="my-compiled-code.js"></script>的HTML中有一个标签).这不是需要模块工作的方式.相反,一旦你使RequireJS可用,你应该有一个顶级启动脚本(在HTML中内联或作为一个单独的文件)配置RequireJS然后require()是应用程序的顶级文件来启动所有内容关闭.您可以手动加载此文件,也可以使用RequireJS的"data-main"属性加载此文件.
例如,最小的HTML看起来像:
<!DOCTYPE html>
<html>
<head>
<script data-main="scripts/main" src="scripts/require.js"></script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这会从'scripts/require.js'加载RequireJS,然后告诉它在'scripts/main.js'加载脚本以开始加载过程(你可能想要更新两个路径 - 注意data-main不不需要.js扩展名.
那么主要的脚本应该是非常简单的:
// Set up any config you need (you might not need this)
requirejs.config({
basePath: "/scripts"
});
// Tell RequireJS to load your main module (and its dependencies)
require("mainmodule");
Run Code Online (Sandbox Code Playgroud)
一般来说,这不是你在这里遇到的TypeScript问题,而是RequireJS.我尝试花费更多的时间来玩只需要(可能是纯JavaScript,所以它更清晰)并查看工作示例,所以你可以先让这个工作,然后添加其余部分.
| 归档时间: |
|
| 查看次数: |
37581 次 |
| 最近记录: |