2016-10-25 11 views
3

s3에서 정적 파일을 제공하기 위해 django 저장소를 사용 중이며 모든 파일을 Webpack 번들로 이동하는 중입니다. 이것은 django-webpack-loader에서 잘 작동하는데, 장고가 번들을 어디서 발견하는지 상관하지 않습니다.Webpack : S3에서 Django 저장소를 사용하여 코드 분할 덩어리로드

내 문제는 require.ensure을 사용하여 분리 점을 정의하기 시작할 때 번들이 s3 버킷 대신 상대 경로를 사용하여 청크를 다운로드하려고 시도한다는 것입니다. 웹팩의 코드 분할 기능이 django 저장 장치에 불가지론이기 때문입니다.

필요에 따라 청크를 가져 오기위한 사용자 지정 논리를 삽입하는 방법이 있습니까? 나는 config 파일에 내 s3 번들 주소를 하드 코딩하는 것이 아니지만 지금까지 시도한 것은 아무것도 없다.

여기 (커피 스크립트로 작성) 내 웹팩 설정

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/"