我相信我在这里完全错过了一些微不足道的东西,但是我无论如何也想不出来。最近我开始使用AMD(RequireJS)。我的应用程序将在浏览器中运行。
设置
在TypeScript 1.8中,当使用AMD时,可以将由外部模块组成的整个项目tsc
为一个单独的输出文件可能。
因此,出于这个原因,我终于决定放弃内部模块,并使我的所有VS2015项目.ts
和.tsx
文件成为外部模块,然后使用以下编译器参数将它们编译为单个文件:
--module AMD --outFile main.js
输出
生成了预期的单一输出main.js文件,其中列出了项目中的所有模块:
main.js
define("Project/MainModule", ["require", "exports" ...], function (require, exports ...) {
"use strict";
console.log("MainModule defined");
// ...
});
...
使用方法 (?)
现在,我该怎样使Project/MainModule
从-例如-index.html运行(以便将“MainModule defined”记录到控制台中)? 我已经加载了RequireJS来处理AMD语法,并指定了用于立即加载的main.js文件:
index.html
<script data-main="main" src="Require.js"></script>
这个方法可以正确加载main.js
,我在该文件(模块外部)的定义列表之后包含了一个调用console.log
的语句以确保此点。如果这是一个微不足道的问题,请原谅,我找不到任何关于如何使用这种方法来使用已编译的应用程序的信息(也许我没有使用正确的关键字?)。
编辑:我尝试通过名称来引入该模块:
index.html
<script>
window.onload = function () {
require(["Project/MainModule"], function () {
// this
});
}
</script>
...但是这样不好,RequireJS找不到该模块。