找不到模块'angular2/core'

rab*_*ana 61 visual-studio visual-studio-2015 angular

在此输入图像描述

这些红色波浪线说cannot find module 'angular2/core',cannot find module 'angular2/router',cannot find module 'angular2/http'.我查了SO中的其他帖子,但似乎没有合适的答案.

我还添加了对d.ts文件的引用,如下所示,但仍然无法正常工作. 在此输入图像描述

其他帖子说我需要在tsconfig.json文件中配置一些东西,但我使用的是Visual Studio,我认为不需要使用angular团队建议的tscompiler,因为Visual Studio应该能够自动编译ts文件.

我错过了什么吗?

tsconfig.json即使您使用Visual Studio ,仍然需要吗?

我如何摆脱这些波浪线?

谢谢!

(我使用的是Visual Studio 2015和最新的Typescript引擎)

更新:我不确定npm包管理器究竟是什么.但是我有一个package.json在项目创建时创建的预构建文件.我用这个文件来安装npm包. 在此输入图像描述

pix*_*its 53

对于VS 2015中的ASP.NET 5.0应用程序,配置typescript有点挑战性.

在改进打字稿的工具之前,您可以手动配置打字稿:

Step 1: Right-click project, and Unload Project 
Step 2: Right-click the unloaded project, and Edit the .xproj file
Step 3: Add a PropertyGroup node, under the Project node:

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptJSXEmit>None</TypeScriptJSXEmit>
    <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
    <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
    <TypeScriptModuleKind>CommonJS</TypeScriptModuleKind>
    <TypeScriptRemoveComments>False</TypeScriptRemoveComments>
    <TypeScriptOutFile />
    <TypeScriptOutDir />
    <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
    <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
    <TypeScriptSourceMap>True</TypeScriptSourceMap>
    <TypeScriptMapRoot />
    <TypeScriptSourceRoot />
    <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
  </PropertyGroup>

Step 4: Right-click the unloaded project and Reload Project
Step 5: Re-build project
Run Code Online (Sandbox Code Playgroud)

如果您仍然遇到无法找到模块的错误,请退出visual studio并重新加载解决方案.

  • 我发现这个网站非常有用,它列出了你可以放在项目文件中的所有选项.https://github.com/Microsoft/TypeScript/wiki/Setting-Compiler-Options-in-MSBuild-projects (2认同)

rab*_*ana 9

这是我的工作设置:

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
  <TypeScriptTarget>ES5</TypeScriptTarget>
  <TypeScriptJSXEmit>None</TypeScriptJSXEmit>
  <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
  <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
  <TypeScriptModuleKind>System</TypeScriptModuleKind>
  <TypeScriptRemoveComments>False</TypeScriptRemoveComments>
  <TypeScriptOutFile />
  <TypeScriptModuleResolution>NodeJs</TypeScriptModuleResolution>
  <TypeScriptOutDir />
  <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
  <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
  <TypeScriptSourceMap>True</TypeScriptSourceMap>
  <TypeScriptMapRoot />
  <TypeScriptSourceRoot />
  <TypeScriptEmitDecoratorMetadata>True</TypeScriptEmitDecoratorMetadata>
  <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

将此应用到Web项目后重新启动Visual Studio.

  • 这套标签对我有用.我认为`<TypeScriptModuleResolution> NodeJs </ TypeScriptModuleResolution>`是修复我看到的错误的关键(与OP发布的相同). (2认同)

小智 7

对于VS2015,请转到工具 - >选项 - >文本编辑器 - > TypeScript - >项目 - >常规,然后选中"自动编译不属于项目的TypeScript文件",然后选择"为模块使用CommonJS代码生成".


小智 6

这就是我在VS2015中修复问题的方法:

  • 打开项目属性窗口
  • 导航到TypeScript Build选项卡
  • 选择CommonJS作为模块系统,如下图所示

在此输入图像描述