javascript – 未捕获的ReferenceError:define未定义的typescript

我是打字稿,淘汰赛和requirejs的新手.我用这个文件创建了一些demo.现在,我想使用typescript和knockoutjs实现一些次要的逻辑.

我创建了4-5个打字稿文件,这些文件是在内部导入的.当我运行html文件.我收到错误说明.标题

enter image description here
有人可以帮我解决这个错误.我在这段代码中遗漏了什么.

在谷歌搜索并花了很多时间,但没有找到合适的解决方案.必须与requireJS相关才能定义所有模块.但是,由于requireJS中的新功能无法赶上.我也搜索stackoverflow类似的错误,但它并没有帮助我.

等待解决方案

最佳答案
在这里,你的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>

这会从’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");

一般来说,这不是你在这里遇到的TypeScript问题,而是RequireJS.我尝试花费更多的时间来玩只需要(可能是纯JavaScript,所以它更清晰)并查看工作示例,所以你可以先让这个工作,然后添加其余部分.

转载注明原文:javascript – 未捕获的ReferenceError:define未定义的typescript - 代码日志