web-dev-qa-db-ja.com

Angular 8への更新後、CLIは「.getColorDepthは関数ではありません」をスローします

私の同僚が私たちのプロジェクトをangular 8.にアップグレードしました。私は彼のブランチをプルしてnpm installを実行しました。彼のブランチではすべて正常に動作します。実行するたびに同じエラーが発生するようになりました「ng ...」コマンド:

C:\xxx\party-ui\node_modules\@angular\cli\utilities\color.js:15
    process.stdout.getColorDepth() > 1;
                   ^

    TypeError: process.stdout.getColorDepth is not a function
        at Object.<anonymous> (C:\xxx\party-ui\node_modules\@angular\cli\utilities\color.js:15:20)
        at Module._compile (module.js:652:30)
        at Object.Module._extensions..js (module.js:663:10)
        at Module.load (module.js:565:32)
        at tryModuleLoad (module.js:505:12)
        at Function.Module._load (module.js:497:3)
        at Module.require (module.js:596:17)
        at require (internal/module.js:11:18)
        at Object.<anonymous> (C:\xxx\party-ui\node_modules\@angular\cli\models\analytics.js:18:17)
        at Module._compile (module.js:652:30)

また、npmとノードを更新しようとしました(現在のバージョンは10.16.0および6.9.0です)。また、node_modulesフォルダーを削除し、その後npm installを実行します。私に何ができる?

9
M.D.

問題のあるファイルを調べる./node_modules/@angular/cli/utilities/color.js。問題のある行(15)の上にコメントがあることに注意してください。

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
 const colors = require("ansi-colors");
 exports.colors = colors;
 const tty_1 = require("tty");
 // Typings do not contain the function call (added in Node.js v9.9.0)
 exports.supportsColor = process.stdout instanceof tty_1.WriteStream &&
    process.stdout.getColorDepth() > 1;
 colors.enabled = exports.supportsColor;

具体的には:

// Typings do not contain the function call (added in Node.js v9.9.0)

Nodeをv9.9.0以上のバージョンにアップグレードすると、問題が修正されます。

しかし...

...アップグレード方法の選択 NodeJS は必ずしも簡単ではありません。 Node.jsの更新方法 を参照してください。人気のある回答のいくつかはページのかなり下にあるため、スクロールしてみる価値があります。

18
Jack

同じエラーがありました
私のバージョン:

Angular CLI: 8.1.1
Node: 11.14.0
OS: linux x64
Angular: 8.1.1

実行:

rm -rf node_modules
rm -rf package-lock.json
Sudo npm cache clean --force
npm install
1
dina

Package-lock.jsonを削除して、もう一度npm iを実行してください

0
JEWEL JACOB

"@angular/core": "~8.2.3"でエラーが発生した。

これらのコマンドを使用してノードバージョンを最新の安定したバージョンに更新し、Linuxで問題を修正しました

Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
0
Franklin Pious