【问题标题】:Export is not defined未定义导出
【发布时间】:2017-12-12 09:15:24
【问题描述】:

我收到此错误:

未捕获的引用错误:exports 未定义

这个问题似乎已经被问过好几次了。这是这个question 被问到的一个例子。

我遇到的唯一问题是我找不到人们在回答中一直提到的 tsconfig.ts 文件。 VS解决方案中没有这样的文件。

我使用的是 Visual Studio 2017 企业版。

编辑

我在一个名为 CommonTypes.ts 的文件中定义了所有常用类型

class ddlData {
    ctrId: string;
    id: string;
}

interface ISelectedIdsObj {
    facilityId: number;
    AllCk: boolean;
    AllSelected: boolean;
    Ids: number[];
    totalItems: number;
}

//More classes and intefaces here...

export { ddlData, ISelectedIdsObj, IPaginationData, IHeaderColumn, ISelectedListItem }

我是这样称呼它的

/// <reference path="../typings/jquery/jquery.d.ts" />

//import { ddlData, ISelectedIdsObj, IPaginationData, IHeaderColumn, ISelectedListItem } from '../Commons/CommonTypes'

我收到了Uncaught ReferenceError: exports is not defined at line 3

编辑 2

我创建了 2 个打字稿文件:test1test2

这是测试2:

export const x = 1;

这是test1:

/// <reference path="../typings/jquery/jquery.d.ts" />

import { x } from './Test2'

$(function () {
   alert(x);
});

我仍然遇到同样的错误:Uncaught ReferenceError: exports is not defined at Test1.js:3

【问题讨论】:

  • 谁曾试图结束这个问题并否决了我,因为不清楚。我正在尝试使用 `import { class1, class2, ...} from '../path'` 导入一系列类。我收到了我在上面发布的错误。我做了一些研究并找到了一些答案。但我不知道这些解决方案是否适用于 Visual Studio。如果你不明白我的问题,为什么不解释你觉得困难的原因而不是想结束这个问题?
  • 你能发布你的代码吗?
  • 请参阅编辑。
  • 您的解决方案中有tsconfig.*json* 吗?如果是,您可以添加问题内容吗?
  • 解决方案中没有这样的文件。这就是我问这个问题的原因。因为似乎 tsconfig.*json* 可以在 VS Code 中找到,而不是在 VS 中。

标签: javascript visual-studio typescript


【解决方案1】:

由于您已澄清问题出在浏览器中,因此很容易修复。 由于您没有在解决方案中创建 tsconfig.json 文件,因此您的项目在 VS 中使用默认配置进行编译。即它将使用CommonJS 作为目标模块。更多关于tsconfig.json的信息可以阅读here

这是错误背后的实际原因。 Web 浏览器默认不支持 CommonJS。 require(...) 也会出现同样的问题。您将需要使用诸如RequireJSamd 之类的模块加载器,或者您可以使用诸如webpackbrowserify 之类的打包工具来为您执行此操作。 Webpack 是一款易于配置且种类繁多的打包工具,广受欢迎。

SO回答

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 2017-09-14
    • 2017-11-17
    • 2017-08-19
    • 2019-11-16
    • 2021-03-03
    • 1970-01-01
    • 2019-09-28
    相关资源
    最近更新 更多