我想将RequireJS与TypeScript结合使用。在我的index.html
文件中,我添加了以下行(查看data-main
属性):
<script type="text/javascript" src="vendor/require.js" data-main="build/main.js"></script>
我使用require.config
方法指示RequireJs在哪里找到我的库。我的main.ts
脚本如下所示:
/// <reference path="path/to/MyPackage.d.ts" />
require.config({ paths: {'MyPackage': 'path/to/MyPackage'}});
import {MyClass} from 'MyPackage';
new MyClass();
TypeScript编译器生成如下内容:
define(['require', 'exports', 'MyClass'], function (require, export, MyClass_1) {
...
require.config({ paths: {'MyPackage': 'path/to/MyPackage'}});
var t = new MyClass_1();
});
但是之前编译的代码会生成以下错误:
未捕获的TypeError:require.config不是函数
那是因为require.config
函数不应该在define([...], ...
函数中。如果我将require.config
函数移到define
函数之外,则一切正常。
附加说明:
我将我的应用程序声明为AMD模块(tsconfig.json):
{
"compilerOptions": {
"module": "amd",
... more directives ...
我使用这种方法解决了这个问题: https://stackoverflow.com/a/27166031/1704895
但我对这个解决方案并不是很满意。看起来有点棘手。你会如何解决这个问题?