ヨーマン/グラント/ボワーは初めてです。次の依存関係を定義するbower.json
ファイルがあります。
bower.json
{
"dependencies": {
"angular": "~1.0.7",
"jquery": "~1.8.0",
"bootstrap": "~2.3.2",
"angular-grid": "~2.0.5"
}
}
私のhtmlファイルでは、bower install
コマンドを使用してインストールしたこれらのライブラリの縮小されていないバージョンを使用しています。
index.html
<script src="components/jquery/jquery.js"></script>
<script src="components/bootstrap/docs/assets/js/bootstrap.js"></script>
<script src="components/angular/angular.js"></script>
<script src="components/angular-grid/build/ng-grid.js"></script>
どうすればうなり声を設定できますか?
jquery.js
からjquery.min.js
ここで正しいアプローチは何ですか?単調なコピータスクで各ライブラリを定義する必要がありますか?お気に入り:
Gruntfile.js:
copy: {
dist: {
files: [{
src: [
'components/jquery/jquery.min.js',
'components/bootstrap/docs/assets/js/bootstrap.min.js',
'components/angular/angular.min.js',
'components/angular-grid/build/ng-grid.min.js'
]
}]
}
}
使用しているJavaScriptライブラリの縮小バージョンには、最終的にBowerモジュールが付属しません。縮小と連結は、パッケージマネージャーが担当するものではなく、ビルドパイプラインです。
Yeoman の場合、推奨される方法は grunt-usemin を使用することです。これにより、必要なすべてのステップが処理されます。 yo webapp
を使用して新しいアプリを作成し、生成されたGruntfile.js
およびindex.html
を確認すると、この例を見ることができます。
あなたの場合、あなたのスクリプトを囲むコメントを追加する必要があります:
<!-- build:js scripts/main.js -->
<script src="components/jquery/jquery.js"></script>
<script src="components/bootstrap/docs/assets/js/bootstrap.js"></script>
<script src="components/angular/angular.js"></script>
<script src="components/angular-grid/build/ng-grid.js"></script>
<!-- endbuild -->
そして、Gruntパイプラインに対応するuseminタスクがあることを確認してください:
useminPrepare: {
options: {
dest: 'dist'
},
html: 'app/index.html'
},
usemin: {
options: {
dirs: ['dist']
},
html: ['dist/{,*/}*.html'],
css: ['dist/styles/{,*/}*.css']
},
htmlを変更する必要はありません。 grunt-contrib-uglify
uglify: {
libs: {
files: [
{
expand: true,
cwd: 'components',
src: '**/*.js',
dest: 'build/components'
}
]
}
}
また、ファイルが1ページ以上要求された場合、ブラウザによってキャッシュされ、結合された大きなファイルよりも高速にロードされます。
縮小されたjavascriptを使用し、インクルードパスにパッケージバージョンを含めることに関心がある場合は、 grunt-version-copy-bower-components を使用することもできます。このうなり声プラグインは、bowerコンポーネントの宛先ディレクトリへのコピーを処理し、コンポーネントパスにコンポーネントバージョンを含め、バージョン管理された縮小パスを使用するように参照ファイル(htmlおよびcss)を変更します。
コンポーネントパスにバージョンを含めると、サイトがキャッシュ(CDNの背後)でホストされている場合に役立ちます。これにより、bowerコンポーネントの長いキャッシュ時間を指定できます。新しいbowerコンポーネントバージョンに切り替えると、URLは新しくなり、キャッシュは古いコンポーネントを提供する代わりに新しいURLを取得します。
設定例:
versionCopyBowerComponents: {
options: {
exclude: ['underscore'],
dest: 'dist/libs',
filesReferencingComponents: {
files: ['dist/test.html', 'dist/test.css'],
useComponentMin: true
}
}
}
プラグインは、プロジェクトが使用しているBowerコンポーネントを判別し、destで指定されたパスに自動的にインストールします。 filesReferencingComponents-> filesにリストされているファイルは、bowerコンポーネントをインクルード/ソースするファイルです。 useComponentMinを指定すると、コンポーネントの縮小バージョンが選択されます。
縮小版にすでに存在するライブラリを自分で縮小することは悪い習慣です。幸いなことに、少なくともangleJSの場合、bowerパッケージにはangular.min.js.mapファイルが含まれています。このソースマップでは、ソースの縮小されていないファイルをいつでも含めることは意味がないと思います。最小ファイルをインクルードし、Gruntミニファイヤの外に置いて、ブラウザを縮小されていないソースにマップします。