导入/导出模块 - 打字稿

时间:2017-05-10 18:32:14

标签: javascript typescript module

当我尝试导入外部模块并尝试编译我的代码时,会出现以下错误消息:app.ts:1 Uncaught ReferenceError: require is not defined at app.ts:1。打字稿版本是:2.1.6。

我的app.ts文件:

import {PI, calcCircumference } from "./math/circle";

console.log(PI);
console.log(calcCircumference(10));
//console.log();

我的circle.ts文件

export const PI: number = 3.14;

export function calcCircumference(diameter: number) {

    return diameter * PI;
};

我的tsconfig.json文件

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": true
    }
}

全部谢谢

1 个答案:

答案 0 :(得分:1)

我假设您正在尝试在客户端环境中运行您的代码 - 您的浏览器。在这种情况下,您必须配置模块加载器,因为与node.js之类的服务器环境不同,默认情况下(尚)支持模块加载并且不知道如何要求'特别模块。

这里有几个选项:

  1. 捆绑browserify / webpack
  2. 等工具
  3. requirejs / systemjs
  4. 等装载程序

    Google,你会发现许多有关如何使用上述方法之一设置打字稿的教程(例如:systemjswebpack

    我个人的偏好是systemjs(包含管理员jspm) - 但您的选择将在很大程度上取决于您构建的应用程序的特定要求。