web-dev-qa-db-ja.com

Angular 5、@ typesなしでNPMモジュールをインポートするにはどうすればいいですか?

Angular 5、angular-cliからプロジェクトを開始しようとしています。このプロジェクトでは、NPMモジュールを使用したいと思います:J2M(- https://github.com/kylefarris/J2M )、だから私はオンラインで見て、次の2つのコマンドを見ました:

npm install j2m --save
npm install @types/j2m --save-dev

残念ながら、@ types/j2mはまったく存在しません。だから私は自分のタイピングを定義する方法を見つけようとしましたが、うまくいくことができませんでした...

私はこのコードを使用しています:

import * as J2M from "j2m";
...
console.log(J2M.toM(value));

しかし、オンラインで見つけたサンプルに基づいて、「j2m」が認識されないか、「toM」が関数ではありません...

だから、このモジュールをインポートする適切な方法は何ですか?

ありがとう、

6
ALansmanne

スクリプトをangular-cli.jsonファイルに追加する必要があります。

scriptsプロパティの下に、追加します

'../node_modules/path/to/minified/js.js'

スタイルが必要な場合は、同じファイルのstylesプロパティの下にもスタイルを追加する必要があります。

それを行ったら、ライブラリがインポートされます。これは、次のようなものを使用する必要がないことを意味します

import * from 'j2m';

ただし、IDEエラーをスローせずにグローバル変数を使用する場合は、

declare var J2M: any;

J2Mは、ライブラリからエクスポートされたグローバル関数です(たとえば、MomentJSの場合、この変数はmomentと呼ばれます)。

定義ファイルを使用すると、JSライブラリを自動的にフェッチするようにCLIに指示するだけで、IDE auto-completion。このソリューションでは、自動補完がありません。ライブラリをフェッチする場所をCLIに明示的に指示します。

15
user4676340