2017-10-29 10 views
-1

私が作成したaxternalのjavascriptライブラリを追加したいと思います。どうしたらいいですか? 、 "scripts": ["../lib/converter.js"]angi-cliアプリケーションで外部libを使用する

module.export = { 
    myFunc: a=>a 
} 

と私は./libフォルダ

でそれをコピーし.angular-cli.jsonに私はアプリにこのエントリを追加します。 のは、私はそのようなファイルファイル、converter.js

を持っているとしましょう

私はhtmlファイルのソースに自分のファイルを含むjavascriptファイルを見ることができます。良い。ドキュメントと同様に

は、スクリプト配列を経由してライブラリをインポートしたら、あなたがすべき

言っ

しかし、私はapp.component.ts、例えばmyFuncというの使用方法を理解していません... をタイプスクリプトコードのインポートステートメントでインポートしないでください(例: '* jquery'; from $ )。これを行うと、グローバルライブラリとしてインポートされたものと、モジュールとしてインポートされたものが1つの の2種類のライブラリのコピーになります。

...

あなたが使用する必要があるグローバルライブラリは、グローバルなタイピング、 を持っていない場合、あなたはまた、どのようSRC/typings.d.tsに手動でそれらを宣言することができます。

宣言します。var libraryName:any;

そして、私がやった:declare var myFunc: anyのsrc/typings.d.ts

ナット何もで:(グローバルとして)myFuncというを呼び出そうとしたが、それは未定義でした。

は私がdeclare var myFunc: (any) => any;を好むだろうが、あなたの宣言は、正しいと思い、あなたに

+0

あなたはその機能を.tsファイルでどのように使用するのか分かりません。 – vicbyte

+1

詳細については、[こちら](https://github.com/angular/angular-cli/wiki/stories-third-party-lib)をお試しください。 –

+0

@vicbyteはい、最後に.tsファイルにjavascript関数を使用したいと思います。 –

答えて

1

ありがとうございます。あなたのライブラリーにmodule.exportを使用していますが、node.jsのサーバー側で使用している可能性があります。これは、SystemJSモジュールローダーで使用される構文です。古いAngularチュートリアルで使用されていました。 Angular CLIはWebpackをモジュールローダとして使用していたため、これ以上は必要ありません。

は以下の通りあなたの関数を記述してください:あなたは.angular-cli.jsonで"scripts"配列にスクリプトを追加することを選択した

var myFunc = function (a) { 
    return a; 
} 

。それは明らかに機能します。しかし、私はグローバルスコープで関数を宣言するのは好きではありません。おそらく、ライブラリをインポートするためのより良い方法が必要です。代わりに、import方法を使用してみてください。Richardsが提案しました。

関連する問題