Angular 2プロジェクトにAngular-CLI(webpackバージョン)を使用していて、jQueryも使用する必要があります(残念ながら、これはSemantic-UIの依存関係であり、使用しています)メニューのドロップダウンを処理するため)。
私がそれを使用している方法:
npm install jquery --save
次に、scripts
配列のangular-cli.json
ファイルをリストします。
scripts": [
"../node_modules/jquery/dist/jquery.min.js"
]
したがって、バンドルファイルに含まれ、このファイルは自動的にhtmlファイルをルート化するために使用されます。
<script type="text/javascript" src="scripts.bundle.js">
次に、必要なファイルにdeclare var $: any;
を入れれば、うまく機能します。
ただし、Karmaがエラーng test
をスローするため、$ is not defined
テストには問題があります。
これは、Karmaによって提供されたテスト用htmlファイルに、通常提供されるバージョンのようにscripts.bundle.js
ファイルが含まれていないためです。
解決策は簡単です。 jqueryファイルへの同じパスをプロジェクトのルートフォルダーのkarma.config.js
ファイルに含めるだけです。このファイルは、プロジェクトのルートで入手できます。
files
配列で、次のようにwatched
フラグを使用してパスを追加します。
files: [
{ pattern: './node_modules/jquery/dist/jquery.min.js', watched: false },
{ pattern: './src/test.ts', watched: false }
]
KarmaはjQueryの依存関係について知っているはずです。