【问题标题】:Angular cannot read property 'Version' of undefinedAngular 无法读取未定义的属性“版本”
【发布时间】:2017-02-21 18:47:27
【问题描述】:

我很难安装 angular2 并使用 BabelWebpack 在本地设置它以在 angular 组件中重新实现一个简单的 Hello world 应用程序,只是为了开始。

我目前遇到此运行时错误:

index.html:9 Uncaught TypeError: Cannot read property 'Version' of undefined如果你好奇的话。

这里有一张性感的图片来说明这种情况。

我试图找出这个错误发生在哪里,结果发现它是有角度的(如果我错了,请纠正我)。

准确地说,这一行是var VERSION=new _angular_core.Version(\"2.4.8\") ...

我可以得到一些帮助吗?谢谢!!


app.component.js

import {Component} from '@angular/core';

@Component({
    selector: 'my-app',
    template: `
        <h1>Hello Angular 2</h1>
    `
}) export class AppComponent {};

app.module.js

import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {AppComponent} from './app.component'

@NgModule({
    imports: [BrowserModule],
    declarations: [AppComponent],
    bootstrap: [AppComponent]
}) export class AppModule {};

main.js

import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {AppModule} from './app.module';

platformBrowserDynamic().bootstrapModule(AppModule);

index.js

require('!!script-loader!@angular/compiler/bundles/compiler.umd.min.js');
require('!!script-loader!@angular/core/bundles/core.umd.min.js');
require('!!script-loader!@angular/common/bundles/common.umd.min.js');
require('!!script-loader!@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.min.js');
require('!!script-loader!rxjs/bundles/Rx.min.js');
require('./main')

【问题讨论】:

  • 表示没有叫new _angular_core的东西,可以分享更多代码吗?你觉得我们怎么能知道它到底是什么var VERSION=new _angular_core.Version(\"2.4.8\") ??
  • @5313M 完成,很抱歉没有从一开始就提供代码。谢谢
  • 你能在 plunker 中分享你的代码吗

标签: javascript angular frontend


【解决方案1】:

也许您可以使用 Angular CLI 开始您的第一个项目。它为您省去了必须设置整个开发环境的麻烦。 Angular 团队提供了一个不错的设置。您可以通过运行 'npm install -g @angular/cli' 来安装它。

然后您可以使用命令“ng new PROJECT_NAME”创建一个新项目并使用命令“ng serve”运行它。这就是它的全部内容 :-) 查看文档以帮助您在此处启动并运行:https://github.com/angular/angular-cli

当您对自己的项目充满信心并希望亲自动手构建配置(基于 webpack!)时,请使用“ng弹出”命令。

【讨论】:

  • 我强烈建议不要将 Angular CLI 用作完整的初学者。在使用这样的工具之前,您应该首先了解 CLI 在做什么。按照一些教程(官方的英雄之旅很好)并尝试了解每个功能的作用以及为什么需要它们。
  • 这是一个很好的答案,它完全解决了我的问题,但实际上并没有回答这个问题。我不想使用typescript 以及随之而来的所有依赖项,我已经受够了追逐错误。感谢您的回复。
【解决方案2】:

你所有的 Angular 包都应该是相同的版本。这意味着核心通用编译器等都应该是2.4.8。

问题是我认为在 Angular 2.2 或 2.3 之前这个 get 版本不存在。因此,如果您说 @angular/core 在 2.2 和 @angular/common 在 2.4.8 那么 @angular/common 可能会使用 @angular/core 的功能,这些功能在 @angular/core 的旧版本中不存在,例如可能是 @987654326 @

【讨论】:

    【解决方案3】:

    获取 Angular 的版本:

    import * as angular2 from 'angular2/angular2';
    console.log(angular2.version);
    

    https://github.com/angular/angular/issues/1357

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-12
      • 2015-09-08
      • 2016-05-12
      • 2019-07-25
      • 1970-01-01
      相关资源
      最近更新 更多