angular2:找不到模块'@ angular/core'

sso*_*nez 13 typescript angular

我按照angular2 快速启动创建我的项目,一切正常,但我的"tsc -w"命令行不断告诉我:

app/components/company/company.ts(1,36): error TS2307: Cannot find module '@angular/core'.
app/components/company/company.ts(5,22): error TS2307: Cannot find module '@angular/router'.
app/components/mission/mission.ts(1,36): error TS2307: Cannot find module '@angular/core'.
app/components/mission/mission.ts(3,22): error TS2307: Cannot find module '@angular/router'.
Run Code Online (Sandbox Code Playgroud)

还有很多其他的这样的路线.但是,一切都已成功编译,我的应用程序工作正常,但将所有这些警告/错误作为真正的错误在它们中间丢失是非常烦人的.

我正在使用Angular2 rc1,TypeScript 1.8.10,WebStorm EAP(尽管我没有使用WebStorm TypeScript编译系统,我依赖于带有"tsc -w"命令行的开放式终端).

我在SO上检查了与之相关的其他问题,但我找不到任何真正帮助我的东西.

更新

这是我的tsconfig.json文件:

{
  "compilerOptions": {
    "target": "es5",
    "sourceMap": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "module": "system",
    "noImplicitAny": false,
    "outDir": "js",
    "rootDir": "app"
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

Thi*_*ier 17

您应该使用该moduleResolution属性node:

{
  "compilerOptions": {
    "target": "es5",
    "sourceMap": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "module": "system",
    "moduleResolution": "node", // <-----
    "noImplicitAny": false,
    "outDir": "js",
    "rootDir": "app"
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

  • 不知怎的,我的编辑仍然有`找不到模块"@角/ core'`,即使这是在`SRC /`tsconfig? (9认同)

Har*_*tel 5

您首先需要在全局级别添加类型,如下所示.

npm install -g typings
Run Code Online (Sandbox Code Playgroud)

然后使用下面的命令创建typings.json.

typings init
Run Code Online (Sandbox Code Playgroud)

粘贴在typings.json中的代码下面

{
  "name": "ng2-application",
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160725163759",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160909174046"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在您需要在tsconfig.json中添加以下代码

 "compilerOptions": {
        "moduleResolution": "node"
       }
Run Code Online (Sandbox Code Playgroud)

完成上述步骤后,您将能够获得F12的定义.