2016-10-25 7 views
3

私はs3から静的ファイルを提供するためにdjangoストレージを使用していますが、それらをすべてWebpackバンドルに移動するプロセスです。これは、django-webpack-loaderでうまくいきます。これは、djangoがバンドルを見つける場所には関係ありません。Webpack:S3からDjangoストレージを使用してコード分割チャンクをロード

私の問題は、require.ensureを使って分割点を定義し始めたときに、バンドルはs3バケットではなく相対パスを使用してチャンクをダウンロードしようとしていることです。これはwebpackのコード分割機能がdjangoストレージに依存しないからです。

オンデマンドでチャンクをフェッチするカスタムロジックを挿入する方法はありますか?私は設定ファイルに私のs3バンドルアドレスをハードコーディングしているのではありませんが、これまでに試したことはありませんでした。ここで

(のCoffeeScriptで書かれた)私のWebPACKの設定

path = require "path" 
webpack = require 'webpack' 
BundleTracker = require 'webpack-bundle-tracker' 
ExtractTextPlugin = require "extract-text-webpack-plugin" 
loaders = require "./loaders.coffee" 

module.exports = 
    context: __dirname 
    entry: require "./entries.coffee" 
    output: 
     path: path.resolve 'app/static/dist/' 
     filename: '[name].js' 
     sourceMapFilename: "[name].map.js", 
    devtool: "source-map" 

     plugins: [ 

      new BundleTracker filename: './webpack/webpack-stats-prod.json' 

      new webpack.DefinePlugin 
      'process.env': 
       'NODE_ENV': JSON.stringify 'production' 

      new webpack.optimize.OccurenceOrderPlugin 

      new ExtractTextPlugin "[name].css" 

      new webpack.optimize.UglifyJsPlugin 
      sourceMap: false 
      compressor: 
       warnings: false 


     ] 

    module: 
     loaders: loaders.production_loaders 

    resolve: loaders.resolution 

答えて

1

は、私はちょうどoutput下publicPathオプションを設定する必要が判明しています。バケツのアドレスを近くのファイルに書き込むための私の無理なスクリプトを設定しました。

{bucket} = require "./bucket.json" 


module.exports = 
    context: __dirname 
    entry: require "./entries.coffee" 
    output: 
     path: path.resolve 'app/static/dist/' 
     filename: '[name].js' 
     sourceMapFilename: "[name].map.js", 
     publicPath: bucket + "/static/dist/" 
関連する問題