Typescript Angular2错误找不到模块angular / x

时间:2016-01-20 03:17:55

标签: typescript visual-studio-2015 angular

此应用程序使用jspm进行javascript模块加载,因此所有angular2 typescript定义文件都位于jspm_modules文件夹中。我得到的错误是,Typescript找不到模块'angular / core','angular / route','angular / http'等等。我在VS 2015编辑器和运行构建时都遇到错误,这是使用gulp-typescript 。我想也许是因为我的tsconfig.json中有jspm_packages:

{
  "version": 3,
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
    "node_modules",
    "wwwroot/jspm_packages",
    "wwwroot/app"
  ]
}

但是,如果我删除该行,我会得到各种重复的名称错误。我已经尝试按照其他类似问题的建议编辑我的xproj文件,但无济于事。有任何想法如何解决这个问题?

enter image description here

源代码可在github上找到。

https://github.com/ryanlangton/angular2-asp5-starter/tree/typescript-errors

1 个答案:

答案 0 :(得分:0)

我认为class Message(Base): __tablename__ = 'log' __init__ = Base.__init__ ts = Column(DateTime) uts = Column(BigInteger, primary_key=True) user = Column(String(24)) message = Column(String(512)) 目录中的npm install应该解决这个问题。 TypeScript编译器将在package.json中自动找到类型定义。

问题是依赖解析在JSPM驱动的Angualr2应用程序中是双重的。

编译阶段,在这种情况下为node_modules,将会发现Angular2模块符合typescript编译器的规则。 gulp-typescript通常会在tsc中输入文件。因此,如果您在本地安装Angular2,node_modules将正确解析它。

运行时阶段完全是另一回事。在浏览器中,所有依赖项都由jspm解析,jspm由gulp-typescript配置。你的打字稿被编译成javascript,所以tsc不会干扰这里。 Systemjs会在config.js中找到angular2

因此,似乎未安装编译阶段依赖项。试试jspm_packages