除非提供了--module标志,否则无法编译模块

时间:2015-08-23 18:31:48

标签: typescript visual-studio-2015

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

VS 15:asp.net MVC项目。

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

然后我构建项目。

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

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

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

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

我已经阅读了此错误的所有其他堆栈溢出答案,但没有一个解决了错误。

我找到的唯一解决方法是将“Compile On Save”设置为true,然后将构建操作设置为“None”

3 个答案:

答案 0 :(得分:7)

1打开项目属性(在Solution Explorer中右键单击您的项目,然后单击“Properties”)。

2打开TypeScript选项卡。

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

答案 1 :(得分:6)

所以,我们一直都会遇到这种情况,但出于不同的原因。我们将所有打字稿编译卸载到gulp(由PreBuildEvent调用),因此编译工作正常,但在Visual Studio中查看文件时仍然会出现此错误。

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

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

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

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

答案 2 :(得分:1)

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

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