問題タブ [grunt-usemin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - Travis CI で静的な Angular / Yeoman プロジェクトを S3 にデプロイする際の問題 (Grunt の問題)
プロジェクトを S3 にデプロイしようとしていますが、grunt build
手順に問題があります。私のMac(10.9、ノード0.10)では、このgrunt build
ステップは完全に機能します。コマンドライン クライアントを使用して手動で s3 にデプロイすると、すべてが機能します。
しかし、Travis を使用すると、スクリプトが連結されると、サービスとディレクティブが除外されているように見えます。Travis ログでは、追加する必要があるように見えます (例: 2054 行)。
これは私の.travis.yml
ファイルです:
私のレポはここにあります: https://github.com/keymholio/lastfm-angular
私の travis ビルドはこちら: https://travis-ci.org/keymholio/lastfm-angular/builds/22743947
デプロイされたサイト: http://lastfm-angular.s3-website-us-east-1.amazonaws.com/
gruntjs - Grunt usemin がサブディレクトリまたはコンパイル済み CSS ファイルのファイル参照を置き換えない
grunt-usemin タスクのセットアップが少しわかりにくいと思います。私は grunt-usemin を使用して、ファイルを連結、醜くし、改訂しています。ルートの index.html ファイルでは機能しますが、他のディレクトリのファイルは revved ファイル参照に置き換えられません。
次のファイル構造があります。
ビルド時に、すべてがディレクトリに組み込まれ/dist
ます。
私の Gruntfile には、(他のタスクの中でも) 次のものが含まれています。
HTML ファイルで置換されるブロックは次のようになります。
ビルドすると、dist/index.html
css、js concat ブロック、およびすべての画像について、正しく改訂されたすべてのファイル名が表示されます。ただし、コンパイルされた CSS ファイルには、改訂されたファイル参照が含まれていません。また、すべてのサブディレクトリの index.html ファイルで、ファイル参照が更新されたバージョンに更新されることもありません。
HTML ファイルを参照すると**.html
、サブディレクトリ内のすべての html ファイルをターゲットにする必要があると考えました。usemin または useminPrepare タスクに間違いがあると思いますが、これは事実ですか?
==編集==
przno の回答に応じて、CSS を正しくコンパイルするように変更usemin:css:
しました。<%= yeoman.dist %>/assets/css/*.css
gruntjs - grunt を使用する必要がある理由 - useminPrepare
concat と uglify はビルド タスクの後半で実行されるため、yeoman angular generator が useminPrepare タスク内に concat タスクを持っている理由について少し混乱しています。
誰かが私を啓発できますか?
css - Grunt は相対パスを絶対パスに変換します
(私はGruntの初心者なので、我慢してください)
font-awesome の sass バージョンで grunt を使用しようとしていますが、最終的なスタイルシートが生成されると、フォント ファイルのパスは絶対パスになり、次のようになります。
/users/my_user_name/git/project_name/.tmp/bower_components/font-awesome/fonts/font-awesome.ttf
代わりに、私が期待するように:
../bower_components/font-awesome/fonts/font-awesome.ttf
.tmp ディレクトリで生成されたスタイルシートを見ると、ここのパスは相対パスなので、usemin などの他のコンポーネントの 1 つが混乱していると思われます。
プロジェクトのセットアップに yeoman を使用しました。
問題が何であるか、またはfont-awesomeで動作するgruntfileの例を提供できる人はいますか?
gruntjs - httpFontsPath の編集時にアセット ハッシュが失われる
したがって、私の本番プロジェクトのパスは、私の開発プロジェクトのパスとは異なります。したがって、コンパス構成でアセット パスを編集する必要があります。
ただし、ビルドされた css ファイルは次のようになります。
これの代わりに:
そして、そのコンパス構成行を省略すると、出力は次のようになります。
httpFontsPath を編集するとハッシュが失われるのはなぜですか??
backbone.js - grunt serve:dist バックボーン jQuery Mobile RequireJS でのエラー
Grunt と配布プロセスは初めてです。バックボーン ジェネレーター、require.js、および jQuery Mobile を使用して Yeoman で生成されたアプリがあります。「grunt serve」では正常に動作しますが、build と serve:dist を実行すると、jQuery Mobile / Backbone href リンクをクリックしても応答しません。バックボーン ルーティングを使用しています。
href URL を手動で入力すると、機能します。href で Inspect Element を実行し、デバッグ ウィンドウで URL をクリックしても機能します。
dist に何かが含まれていてはいけませんが、何が欠けているのか、なぜ欠けているのか途方に暮れています。コンソールにエラーはありません。
これが私の Gruntfile です: http://codeshare.io/pHbSc