Visual Studio 2015 - Typescript“构建:找不到模块...”

问题描述:

我试图将Typescript添加到现有的.NET MVC项目中。然而,当我尝试构建时,我会遇到奇怪的错误消息。 Intellisense的作品,我可以看到,类型的作品。我还可以看到手动保存时生成的.js文件,这意味着compileOnSave可以工作。只有当我尝试构建整个项目时,才会出现错误。Visual Studio 2015 - Typescript“构建:找不到模块...”

enter image description here

我在Visual Studio 2015年使用以下设置:

  • 已经安装了打字稿2.0.3

  • 加在我的package.json文件以下devDependencies

enter image description here

  • 我tsconfig文件看起来像这样

enter image description here

  • 我这是怎么导入在的package.json文件中指定的依赖关系。

enter image description here

安装在您的NPM的依赖?如果没有,那么你应该在你的项目文件夹手动运行npm install命令,或避免这种在将来,您可以通过编辑.njsproj文件上生成自动安装NPM包到您的项目,线

<Import Project="$(VSToolsPath)\Node.js Tools\Microsoft.NodejsTools.targets" /> 

添加后以下部分:

<PropertyGroup> 
    <PreBuildEvent> 
     npm install --msvs_version=2015 
    </PreBuildEvent> 
</PropertyGroup> 

或者,如果你只希望它重建,则:

<PropertyGroup> 
    <BeforeRebuildEvent> 
     npm install --msvs_version=2015 
    </BeforeRebuildEvent> 
</PropertyGroup> 

--msvs_version=2015命令行选项不是必需的,但如果您使用VS的多个版本或您的npm设置不正确,那么它可能会有用。

+0

依赖关系安装正确。我可以在“node_module”文件夹中看到它们。所以很遗憾不是这种情况。 – Victor

+0

然后你可以尝试设置一个'tsconfig.json'文件;关于如何设置的文档(https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)。 – ther

+0

正如你在我最初的问题中看到的那样,我已经设置了一个tsconfig.json,我的参考文档是Documentation。 – Victor

这里发布解决方案的工作对我来说:Cannot find module when compiling under Visual Studio

(更新至为Visual Studio 2015年这里的最新版本打字稿的:https://www.microsoft.com/en-us/download/details.aspx?id=48593

我有一个应用程序,显示“无法找到模块”在Visual Studio 2015 [TypeScript 2.0.6]中查看编辑器时的消息 - 但在VSCode中完美运行!

我尝试了所有在*和其他网站上发现的推荐更改,但没有一个为我工作。解决了我的问题的更改是从tsconfig文件中删除'outDir'属性!我知道原始问题中的代码不使用outDir属性,但此答案可能有助于其他人。

此更改对VS2017也是必需的。 我的建议:尽可能使用VSCode! :)

+0

似乎没有为我解决它。还有其他建议吗? – crush

我有同样的问题,并通过安装npm修复。

npm install

我使用RequireJS,需要对模块系统从CommonJS的改变AMD。在Visual Studio:

  • 权在解决方案资源管理器中单击项目,在 “属性”
  • 打字稿构建(上左选项卡)下的模块系统
  • 更改选择
+0

OP正在使用tsconfig.json文件。在这种情况下,Visual Studio的项目属性页面会在TypeScript Build选项卡上锁定该选项,因此无法按照您的描述进行更改。 (我的版本是VS 2017 v15.4.5;不知道这种做法何时开始。) – shahzbot

我有同样的问题与Visual工作室2017年。解决问题安装angular-cli。 希望它可以帮助:)