【问题标题】:Cannot compile modules unless the --module flag is provided除非提供 --module 标志,否则无法编译模块
【发布时间】:2016-11-17 20:19:14
【问题描述】:

更新:我当时遇到的问题是由于 VS/Typescript 中的一个错误。此问题现已解决。目前,发生此错误的唯一原因是在 Typescript 属性中未选择任何模块类型。查看已接受的答案。

VS 15:asp.net MVC 项目。

我添加了一个打字稿文件。然后我将模块系统设置为系统。

然后我构建项目。

发生错误:除非提供 --module 标志,否则无法编译模块。

然后我检查 ts 文件的属性。我将构建操作设置为无。错误消失了。

但是,如果我使用带有 Greeter 类的模板从一个新的 Typescript 项目开始,那么一切都会按预期工作。

但我仔细查看了项目设置,并没有看到任何差异。

我已阅读有关此错误的所有其他堆栈溢出答案,但均未解决该错误。

我发现的唯一解决方法是将“保存时编译”设置为 true,然后将构建操作设置为“无”

【问题讨论】:

标签: typescript visual-studio-2015


【解决方案1】:

1 打开项目属性(在解决方案资源管理器中右键单击您的项目,然后单击“属性”)。

2 打开 TypeScript 选项卡。

3 在模块系统部分选择 AMD。

【讨论】:

    【解决方案2】:

    所以,这种情况时常发生在我们身上,只是出于不同的原因。我们将所有 typescript 编译卸载到 gulp(由 PreBuildEvent 调用),因此编译工作正常,但在 Visual Studio 中查看文件时仍然出现此错误。

    基本上,我们需要告诉 Visual Studio 我们正在使用 AMD,所以要做到这一点,请执行以下操作:

    • 在 Visual Studio 中,转到工具 > 选项 > 文本编辑器 > TypeScript > 项目
    • 勾选“自动编译不属于项目的 TypeScript 文件”
    • 选中“对不属于项目的模块使用 AMD 代码生成”

    此时,您甚至可以取消选中“自动编译 ....”选项,它只是需要保持选中状态的第二个选项。

    同样,当我们遇到问题时,它只是一个开发时间问题,不会影响我们的构建(本地或我们的构建服务器上)。

    【讨论】:

    • 使用 VS 2015,接受的答案建议一个不存在的选项路径 - 我的项目的“属性”页面上没有 TypeScript 选项卡。不过,这个答案对我来说非常有效。
    【解决方案3】:

    使用 VS 2013。 这就是解决我的问题。

    转到项目属性> TypeScript Build > 选择“AMD”作为模块系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 2016-05-14
      • 1970-01-01
      • 2013-08-27
      • 2016-03-03
      • 2019-12-30
      相关资源
      最近更新 更多