[解決済み] Angular Cli Webpack、外部jsファイルを追加またはバンドルする方法?
質問
Angular CliをSystemJsからWebpackに変更した後、JSファイル(ベンダー)をどのようにインクルードすればよいかわかりません。
例えば
オプションA
npm経由でインストールしたjsファイルがあります。このようにscriptタグをheadタグに追加してもうまくいきません。また、最良の方法とも思えません。
<head>
<script src="node_modules/some_package/somejs.js">
</head>
//With systemJs I could do this
<head>
<script src="vendor/some_package/somejs.js">
</head>
オプションB
これらの js ファイルを webpack バンドルの一部としてインクルードします。これはおそらく行うべき方法のように思われます。しかし、私はすべてのwebpackのコードがangular-cli-webpackノードパッケージの後ろに隠されているように見えるので、これを行う方法がわからない。私は、私たちがアクセスできるかもしれない別のwebpackの設定があるのではないかと考えていました。しかし、私は新しいangular-cli-webpackプロジェクトを作成するときに1つを見なかったので、私は確信がありません。
詳細な情報です。
私がインクルードしようとしている js ファイルは、Angular プロジェクトの前にインクルードする必要があります。例えば、jQueryや、モジュールロードやタイプスクリプトのために実際にセットアップされていないサードパーティのjs libなどです。
リファレンス https://github.com/angular/angular-cli/blob/master/WEBPACK_UPDATE.md https://github.com/angular/angular-cli/tree/webpack
どのように解決するのですか?
Angular 11.x.xでangular-cli 11.x.xを使用して最後にテストされました。
これを実現するには
scripts:[]
で
angular.json
.
{
"project": {
"version": "1.0.0",
"name": "my-project"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": ["assets"],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"styles.css"
],
"scripts": [
"../node_modules/jquery/dist/jquery.js"
],
"environments": {
"source": "environments/environment.ts",
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"addons": [],
"packages": [],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "css",
"prefixInterfaces": false
}
}
注意
として
として、ドキュメントでは
の値を変更すると、グローバルライブラリのインストールは完了します。
styles
(または
scripts
!) プロパティであれば
ng serveを起動している場合は再起動します。
...スクリプトが **globalcontext で実行されるのを見るには
scripts.bundle.js
ファイルを通してグローバルコンテキストで実行されるスクリプトを見ることができます。
注意
以下のコメントで述べられているように UMD モジュールをサポートする JS ライブを経由して
es6 インポート
でUMDモジュールをサポートしているJSライブラリ、例えばjQueryもes6 import構文でtypescriptファイルにインポートすることができます。例えば
import $ from 'jquery';
.
関連
-
[解決済み] angular-cliの再インストール後にビルドコマンドを使うには、angular-cliプロジェクト内にいなければなりません。
-
[解決済み] CSSは常にJavascriptより優先されるべきか?
-
[解決済み】Angular CLIが生成する「spec.ts」ファイルは何のためにあるのか?
-
[解決済み】angular-cliプロジェクトにbootstrapを追加する方法
-
[解決済み] angular-cli webpack.config.jsはどこにあるか - 新しいangular6ではng ejectがサポートされていない
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
-
[解決済み] angular-cliのビルドでカスタムファイルをインクルードするには?
-
[解決済み] Angular cli - ng serve時の自動リロードを無効にする方法
-
[解決済み] Error: Can't resolve 'core-js/es7/reflect' in '\node_modules@angular-devkit-build-angularsrc-angular-cli-files
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angularです。Promise、Map、Set、Iteratorが見つからない
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法