使用TypeScript和RequireJS

时间:2017-04-27 11:38:55

标签: javascript typescript requirejs

我想将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

但我对这个解决方案并不是很满意。看起来有点棘手。你会如何解决这个问题?

0 个答案:

没有答案