2016-02-23 14 views
3

不同的块散列后续生产webpack.config文件大多是工作(建立,运行正常),但一个恼人的问题。我精确设置了供应商和应用程序js输出以分离供应商代码(因为这些代码不会经常更改)。然而,随着的.config设置,即使有没有变化,我总是对供应商和app.js.不同的块散列我必须以某种方式设置这个错误,但我不知道它会是什么。请帮忙!的WebPack产品设置 - 厂商输出JS总是即使没什么改变

var path = require('path'); 
var webpack = require('webpack'); 
var node_modules_dir = path.resolve(__dirname, 'node_modules'); 
var AssetsPlugin = require('assets-webpack-plugin'); 
var ChunkManifestPlugin = require('chunk-manifest-webpack-plugin'); 
var app_dir = path.join(__dirname, 'app'); 

var config = { 
    entry: { 
     vendors: ['react', 'react-dom', 'moment'], 
     app: path.resolve(__dirname, 'app/Main.js') 
    }, 
    output: { 
     path: path.resolve(__dirname, 'dist'), 
     filename: '[name].[chunkhash].js', 
     chunkFilename: '[name].[chunkhash].js' 
    }, 
    module: { 
     loaders: [{ 
       test: /\.jsx?$/, // A regexp to test the require path. accepts either js or jsx 
       exclude: [node_modules_dir], 
       loader: 'babel', // The module to load. "babel" is short for "babel-loader" 
      }, 
      // LESS 
      { 
       test: /\.less$/, 
       loader: 'style!css!less' 
      }, 
      { 
       test: /\.css$/, // Only .css files 
       loader: 'style!css' // Run both loaders 
      }, 
      { 
       test: /\.(png|jpg)$/, 
       loader: 'url?limit=25000' 
      }, 
      { test: /\.gif$/, loader: "url-loader?mimetype=image/png" }, 
      { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&minetype=application/font-woff" }, 
      { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader?name=[name].[ext]" } 
     ] 
    }, 
    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
      name: "vendors", 
      minChunks: Infinity 
     }), 
     new AssetsPlugin({ 
      filename: 'webpack-assets.js', 
      path: path.resolve(__dirname, 'dist'), 
      processOutput: function (assets) { 
       return 'window.staticMap = ' + JSON.stringify(assets); 
      } 
     }), 
     new ChunkManifestPlugin({ 
      filename: "chunk-manifest.json", 
      manifestVariable: "webpackManifest" 
     }), 
     new webpack.optimize.DedupePlugin(), 
     new webpack.optimize.OccurrenceOrderPlugin(), 
     new webpack.optimize.UglifyJsPlugin(), 
     new webpack.DefinePlugin({ 
      'process.env': { 
      'NODE_ENV': '"production"' 
      }, 
      '__appSettings': { 
       'apiGatewayDomain': '"http://localhost:8088"', 
       'enableDevTools': false, 
       'enableReduxLogger': false 
      }, 
      __version: JSON.stringify(require(__dirname +"/package.json").version) 
     }), 
     new webpack.ProvidePlugin({ 
      'fetch': 'imports?this=>global!exports?global.fetch!isomorphic-fetch', 
      'configureApplicationStore': 'exports?configureStore!' + app_dir + '/global/redux/ConfigureStore.prod.js' 
      }) 
    ] 
}; 

module.exports = config; 

如果这个设置还有其他明显的问题,请让我知道。谢谢!

+0

我工作的同样的问题现在。我发现的一件事是webpack似乎根据文件的完整路径计算散列。所以,如果我有完全相同的文件,但它是在文件夹1 /在一个案件和文件夹2 /在不同的情况下,我得到的每个文件不同的哈希值。 –

+0

试试这个答案http://stackoverflow.com/a/40451989/983232(同样的问题http://stackoverflow.com/questions/32448389/webpack-long-term-caching/40451989#40451989) –

回答