找不到模块' angular2 / core'

时间:2015-12-28 06:27:30

标签: visual-studio angular visual-studio-2015

enter image description here

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

我还添加了对d.ts文件的引用,如下所示,但仍无效。 enter image description here

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

我错过了什么吗?

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

如何摆脱这些波浪线?

谢谢!

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

更新: 我不确定npm包管理器究竟是什么。但我有一个预先构建的package.json文件,该文件是在创建项目时创建的。我用这个文件来安装npm包。 enter image description here

15 个答案:

答案 0 :(得分: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

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

答案 1 :(得分: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>

将Visual Studio应用到您的Web项目后重新启动Visual Studio。

答案 2 :(得分:7)

对于VS2015,请转到工具 - &gt;选项 - &gt;文字编辑器 - &gt; TypeScript - &gt;项目 - &gt;然后勾选“自动编译不属于项目的TypeScript文件”,然后选择“为模块使用CommonJS代码生成......”

答案 3 :(得分:5)

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

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

enter image description here

答案 4 :(得分:1)

我也遇到了此错误,对我有用的是卸载项目并检查.csproj文件。我发现此代码段已添加到其中-

      buildscript {
     repositories {
       google()
       jcenter()
     }
   dependencies {
    classpath 'com.android.tools.build:gradle:3.2.0-alpha11'
    classpath 'com.google.gms:google-services:4.1.0'
        }
       }


     allprojects {
      repositories {
            maven { url "https://jitpack.io" }
          mavenLocal()
          google()
          jcenter()

        maven {
        url "$rootDir/../node_modules/react-native/android"
                 }

           }
        }

  ext {
   compileSdkVersion = 28
   targetSdkVersion = 28
   buildToolsVersion = "28.0.2"
   supportLibVersion = "28.0.0-rc02"
   googlePlayServicesVersion = "15.0.1"
   oreoEXPERIMENTAL = "yes"
         }

  subprojects {
    afterEvaluate {project ->
      if (project.hasProperty("android")) {
        android {
            compileSdkVersion 28
            buildToolsVersion '28.0.2'
           }
         }
      }
   }

删除此代码,保存csproj,然后重新加载工作的项目。 希望这会有所帮助!

答案 5 :(得分:0)

安装它的最简单方法是使用npm包管理器,因为angular2现在随附输入。您的编辑将识别所有导入位置......

答案 6 :(得分:0)

This has to be done for both 'Debug' and 'Release' then only it works in VS 2013. Like below..

<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>

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES5</TypeScriptTarget>
    <TypeScriptJSXEmit>
    </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>

答案 7 :(得分:0)

我在安装离子2时遇到了这个问题 - 我安装了所有软件包(package.json更新)并将我的npm更新为v3。这解决了它。

答案 8 :(得分:0)

使用Mads Kristensen的ASP.NET Core Angular 2 Starter Application模板进行开发。我在使用Typescript文件启动一个新目录时遇到了类似的问题。

我的解决方案比修改项目文件更简单。我刚刚从ClientApp文件夹中复制了tsconfig.json,其中所有的脚本文件都放在我的新文件夹中。

答案 9 :(得分:0)

右键点击&#34; package.json &#34;

并选择&#34; 还原包&#34; 在安装包之后构建它......你的问题已经解决了

答案 10 :(得分:0)

这是一个有趣的问题,除了上面提到的原因和解决方案之外,还可以在以下情况下出现此错误。

  1. 计算机上未安装NPM(节点包管理器)

    修复:从https://nodejs.org/en/

    安装NPM

    Probably NPM not installed or not configured

  2. 如果在安装NPM后仍然出现此错误,则可能存在NPM配置问题。请参阅此article以正确设置NPM配置

答案 11 :(得分:0)

  1. 在Visual Studio 2015中,转到&#34;工具&#34;菜单并单击&#34;选项...&#34;。你会 能够在打开的窗口的左侧看到树结构。
  2. 展开&#34;项目和解决方案&#34;然后选择&#34;外部Web工具&#34;。现在搬家 &#34; $(PATH)&#34;进入&#34; $(DevEnvDir)&#34;条目。
  3. 单击“确定”。重新启动Visual Studio。
  4. 现在右键点击&#34; package.json&#34;解决方案资源管理器中的文件并单击 on&#34; Restore Packages&#34;。

答案 12 :(得分:0)

嗨我在使用eclplse编辑器时遇到了同样的问题。我在我的cmd窗口中执行了下面的命令,我已经重启了我的日食。它按预期工作。

npm install --save @ angular / core @ angular / compiler @ angular / common @ angular / platform-b​​rowser @ angular / platform-b​​rowser-dynamic rxjs@5.0.0-beta.6 zone.js @ 0.6.12 @ angular / forms

答案 13 :(得分:0)

  • 尝试运行 npm install 命令(将在项目中安装缺少的lib)
  • 重新打开文件夹/项目

答案 14 :(得分:0)

右键单击“ package.json ” 然后选择“安装软件包”选项,它将打开终端并自动导航到正确的根文件夹并安装所需的依赖项。

package.json列出了项目需要运行的所有依赖项列表。