webpack.conf.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var webpack = require('webpack'),
  2. path = require('path');
  3. module.exports = env => {
  4. console.log("Environment: " + env.NODE_ENV);
  5. return {
  6. entry: './app/main.js',
  7. /* entry: {
  8. app: './app/main.js',
  9. vendor: ['whatwg-fetch', 'history', 'lodash']
  10. },*/
  11. devtool: env.dev ? 'cheap-module-eval-source-map' : 'nosources-source-map',
  12. output: {
  13. path: path.resolve(__dirname, 'assets'),
  14. filename: 'tntsearch.js'
  15. },
  16. plugins: [
  17. new webpack.ProvidePlugin({
  18. 'fetch': 'imports-loader?this=>global!exports-loader?global.fetch!whatwg-fetch'
  19. }),
  20. // new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', filename: 'vendor.js' }),
  21. new webpack.optimize.UglifyJsPlugin({
  22. compress: { warnings: false },
  23. sourceMap: env.dev,
  24. output: { comments: false, semicolons: true }
  25. })
  26. ],
  27. module: {
  28. rules: [
  29. { enforce: 'pre', test: /\.json$/, loader: 'json-loader' },
  30. { enforce: 'pre', test: /\.js$/, loader: 'eslint-loader', exclude: /node_modules/ },
  31. { test: /\.css$/, loader: 'style-loader!css-loader' },
  32. {
  33. test: /\.js$/,
  34. loader: 'babel-loader',
  35. exclude: /node_modules/,
  36. query: {
  37. presets: ['es2015', 'stage-3']
  38. }
  39. }
  40. ]
  41. }
  42. }
  43. };