web-dev-qa-db-ja.com

Angular 6 ::名前が見つかりません 'require'

私のプロジェクトはangular cli [バージョン-6.1.3]を使用して作成されています。npmモジュールをインストールしました- is-reachable そしてそれをコードで-として使用しました

const isReachable = require('is-reachable');

appDetailsFromJson.forEach(app => {
        isReachable(app.server).then(reachable => {
          console.log('Hey --> ',reachable);
            //=> true
      });

ただし、プロジェクトを実行すると、例外がスローされます-エラーTS2304:名前 'require'が見つかりません。

これの根本的な原因は何ですか?angular 6)でライブラリをインポートする正しい方法は何ですか?

4
Deb

isReachableのNPMページ から(私の強調):

Node.jsとブラウザーで動作します(browserifyを使用)。

これは、Angular CLIがインポートを解決するために(browserifyではなく)webpackと標準のTypeScriptコンパイラを使用するため、Angularアプリケーションでネイティブに動作する可能性が低いことを意味しますおよびパッケージの依存関係。

一般に、Angularは 標準のES6スタイルの 'import'ステートメント です。例:

import { isReachable } from 'is-reachable';

...または.。

import * as isReachable from 'is-reachable';

Is-reachable自体がそれ以上require()ステートメントを使用しない場合、このmayは機能しますが、独自のコード内でrequireを使用して依存関係を取り込むと、次のようになります。それを機能させるのは非常に困難です-そしてあなたの要件を満たすために別の方法を見つける方がほぼ確実に良いでしょう。

4
Mark Hughes