[英]Uncaught ReferenceError: define is not defined typescript
我是TypeScript,Knockout和requirejs的新手。 我已经使用此文件创建了一些演示。 现在,我想使用Typescript和Knockoutjs实现一些次要逻辑。
我创建了4-5个打字稿文件,这些文件在内部导入。 当我运行html文件时。 我收到错误说明。 如标题
在Google上进行搜索并花了很多时间,但没有找到合适的解决方案。 它必须与requireJS有关以定义所有模块。 但是,由于requireJS中的新功能无法赶上这一步。 我也搜索了stackoverflow以查找类似的错误,但这并没有帮助我。
等待解决方案
在这里,您的TypeScript已经过愉快的编译,可以在requireJS环境 (技术上是AMD环境)下工作的代码。 这意味着它生成的输出假定所有定义/要求等已经存在。
总体答案是,在依赖编译的代码之前,您需要包括RequireJS。
值得注意的是,该错误表明您犯了一个单独的错误:您直接依赖于RequireJS模块脚本(即,您的HTML中有一个<script src="my-compiled-code.js"></script>
标记)。 这不是需求模块的工作方式。 相反,一旦使RequireJS可用,就应该有一个配置RequireJS并随后require()
是应用程序顶级文件的顶级启动脚本(在HTML中内联或作为单独的文件)。开始一切。 您可以手动加载该文件,也可以使用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。 我会尝试花更多的时间来玩Require(也许是在纯JavaScript中,所以更清楚),然后看一些工作示例,这样您就可以先开始工作,然后再添加其余部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.