2016-09-23 5 views
4

aurelia-cliを使用しています。タスクには次のものが含まれます:CLIを使用したクライアント側のキャッシュ無効化

build.json 
build.ts 
process-css.ts 
process-markup.ts 
process-sass.ts 
run.json 
run.ts 
test.json 
test.ts 
transpile.ts 

どうすれば私たちはキャッシュを破棄するのですか?

私たちはもうscriptsディレクトリの番号を増やして、scripts1scripts2scriptsNになるようにしました。

+0

http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/the-aurelia-cli/10 – rball

答えて

8

0.20.0サポート

私の幸運な日です。 An aurelia-cli release from 8 hours前にこの氏は述べています:

特長:サポートバンドルのリビジョン番号

Walkthru

まず、0.20.0をインストールし、新しいアプリを作成します。

npm install [email protected]">=0.20.0" -g 
au new my-app 

または、既存のアプリをアップグレードしてください。

npm install [email protected]">=0.20.0" --save-dev 

次に、my-app/aurelia-project/aurelia.jsonを開きます。

build.options.revプロパティを設定します。最後に

<script src="scripts\vendor-bundle.js" data-main="aurelia-bootstrapper"> 
<script src="scripts\vendor-bundle-947c308e28.js" data-main="aurelia-bootstrapper"> 

、構築:build.targets

"targets": [ 
    { 
     "id": "web", 
     "displayName": "Web", 
     "output": "scripts", 
     "index": "index.html" 
    } 
], 

内部outputindexプロパティaurelia-cliindexファイルを探し、このようなscripts\vendor-bundle.jsへの参照を置き換えますを設定し

"options": { 
    "minify": "stage & prod", 
    "sourcemaps": "dev & stage", 
    "rev": "true" 
}, 

アプリ。

あなたのバンドルは、次のようになります:

app-bundle-e0c4d46f7d.js 
vendor-bundle-dba9184d78.js 

ソースを

cli/lib/build/bundler.js

let defaultBuildOptions = { 
    minify: "stage & prod", 
    sourcemaps: "dev & stage", 
    rev: false 
}; 

cli/lib/build/bundler.js

GitHubの上
+1

あなたが必要としないステップがもう1つあります。プラットフォームではなく、ビルドターゲットに索引プロパティを追加するだけです。喜んであなたのために働く!また、あなた自身の答えを* the *の回答として記入してください。 – Andrew

+0

ありがとうございます@Andrew。更新しました。 –

+0

あなた自身の答えを* the *の答えとして自由に記入してください。他の人はそれが解決すると見ることができます:) – Andrew

3

My AureliaアプリはASP.Net Core MVCページでホストされており、ブラウザで更新されたJSバンドルが正しく読み込まれるようにASP.Net Core asp-append-versionタグヘルパーを使用して成功しました。

この属性はスクリプトタグに追加することができ、ASP.Netは自動的にスクリプトファイルの内容に基づいてバージョン番号を追加します。ハッシュはアプリケーションの起動時に生成されるため、ASPのためにアプリケーションを再起動する必要があります。Netは新しい変更を検出します。

これはアウレリアで動作するようになってトリックもホスティングページのスクリプトタグとしてアプリ-bundle.jsファイルを追加することにある:

<body aurelia-app="main-public" class="public"> <script src="scripts/vendor-bundle.js" data-main="aurelia-bootstrapper" asp-append-version="true"></script> <script src="scripts/app-bundle.js" asp-append-version="true"></script> </body>

出力は次のようになります

<body aurelia-app="main-public" class="public"> <script src="scripts/vendor-bundle.js?v=97hNIHUQnLL3Q44m2FWNV-3NIpgqvgIDIx5sUXUcySQ" data-main="aurelia-bootstrapper"></script> <script src="scripts/app-bundle.js?v=htYOQIr-GHrpZIDiT2b32LxxPZs10cfUU4YNt9iKLro"></script> </body>

免責事項:私はのロード動作に関しては、ベンダーbundle.jsソースコードを検査していませんpp-bundle.jsので、このソリューションがどれほど堅牢であるかわかりません。このアプローチでは何の問題も発生しておらず、私のシナリオではうまくいきます。ただし、生産コードに適用する前に十分に注意してテストしてください。

+0

私は同様のことをやっています。通常、ターゲットバンドル(デフォルトはvendor-bundle)を含めるだけで、スクリプトタグが(requireJS、おそらく?)によって生成され、app-bundleの先頭に挿入されたように見えます。あなたは同じことを見ていますか? –

+0

これを試しました。あなたが何をしているかのように見えます、requireJSはスクリプト自体を読み込む必要がないので、スクリプトをHEADに挿入しません!ニース! –

+0

それは正しいです。ただし、スクリプトタグを手動で追加すると、代わりにスクリプトタグが使用され、スクリプトを2度読み込まないようにします。 –

関連する問題