代码之家  ›  专栏  ›  技术社区  ›  moueidat

angular cli:无法读取未定义的属性“write”

  •  3
  • moueidat  · 技术社区  · 7 年前

    在一些角度包(从4升级到5)升级后,同事遇到以下问题:

    Cannot read property 'write' of undefined
    TypeError: Cannot read property 'write' of undefined
       at UI.write (C:\Workspace\MyAngularApp\MyAngularApp.Web\node_modules\@angular\cli\ember-cli\lib\ui\index.js:56:23)
       at UI.writeLine (C:\Workspace\MyAngularApp\MyAngularApp.Web\node_modules\@angular\cli\ember-cli\lib\ui\index.js:69:8)
       at Class.run (C:\Workspace\MyAngularApp\MyAngularApp.Web\node_modules\@angular\cli\tasks\serve.js:237:12)
       at check_port_1.checkPort.then.port (C:\Workspace\MyAngularApp\MyAngularApp.Web\node_modules\@angular\cli\commands\serve.js:123:26)
       at <anonymous>
       at process._tickCallback (internal/process/next_tick.js:188:7)
    

    这个问题是不可理解的,因为我没有这个问题,而且在vsts中构建也很成功:(

    下面是package.json(从4.3.6升级后):

        "dependencies": {
            "@angular-devkit/core": "0.6.8",
            "@angular/animations": "5.2.9",
            "@angular/common": "5.2.9",
            "@angular/compiler": "5.2.9",
            "@angular/core": "5.2.9",
            "@angular/forms": "5.2.9",
            "@angular/http": "5.2.9",
            "@angular/platform-browser": "5.2.9",
            "@angular/platform-browser-dynamic": "5.2.9",
            "@angular/router": "5.2.9",
            "@ngx-translate/core": "8.0.0",
            "@ngx-translate/http-loader": "1.0.2",
            "angular-azure-blob-service": "1.0.0",
            "angular-sortablejs": "2.0.6",
            "angular2-fontawesome": "5.2.1",
            "angular2-multiselect-dropdown": "2.4.0",
            "bootstrap": "4.1.1",
            "copy-webpack-plugin": "4.3.1",
            "core-js": "2.5.0",
            "font-awesome": "4.7.0",
            "jquery": "^3.3.1",
            "lightbox2": "2.10.0",
            "lodash": "4.17.4",
            "moment": "2.20.1",
            "ng2-completer": "1.6.1",
            "ng5-breadcrumb": "0.0.6",
            "ngx-bootstrap": "^3.0.1",
            "ngx-chips": "^1.9.2",
            "popper.js": "^1.14.3",
            "rxjs": "5.5.8",
            "sortablejs": "1.6.0",
            "tether": "^1.4.4",
            "zone.js": "0.8.23"
          },
          "devDependencies": {
            "@angular/cli": "1.7.4",
            "@angular/compiler-cli": "^5.2.9",
            "@types/jasmine": "2.5.54",
        "@types/node": "8.0.25",
        "codelyzer": "4.0.2",
        "jasmine-core": "2.8.0",
        "jasmine-spec-reporter": "4.2.1",
        "karma": "1.7.0",
        "karma-chrome-launcher": "2.2.0",
        "karma-cli": "1.0.1",
        "karma-coverage-istanbul-reporter": "1.3.0",
        "karma-jasmine": "1.1.0",
        "karma-jasmine-html-reporter": "0.2.2",
        "protractor": "5.1.2",
        "ts-node": "3.3.0",
        "tslint": "5.8.0",
        "typescript": "~2.8.1"
      }
    

    我的同事在安装与我的版本(1.7.4)相同的alpha版本@angular/cli 6.0.x之前就已经安装了,也许这是个线索?

    环境: @角度/cli:1.7.4 节点:8.9.4 净现值:6.1.0

    3 回复  |  直到 7 年前
        1
  •  12
  •   cwiq    7 年前

    发现:d

    我们必须卸载global@angular/cli,然后重新安装:p

    使用的命令:

    • npm卸载-g@angular/cli
    • 安装NPM
    • 删除package-lock.json(credits:@pierreduc)
    • NPM安装
    • npm安装-g@angular/cli
    • 天然气发球

    享受:)

    为什么不直接用6角呢?因为有一些与rxjs相关的突破性变化,但是是的,我们期待着将其更新到angular6。

    是的,您是对的@ploppy;)(使用update.angular.io)

        2
  •  1
  •   Riscie    7 年前

    我和moueidat处于同一个位置,并使用node modules文件夹中的angular cli二进制文件使其工作:

    node.exe .\node_modules\@angular\cli\bin\ng serve
    
        3
  •  0
  •   Stephen E.    7 年前

    我认为这与最新的@angular/cli版本有关。检查您的全局版本是否与您的同事不同。

    我有同样的问题,但这是因为我有一个6.1.1的全局角度版本,当我回到6.0.0时,它是好的。

    推荐文章