webpack.dev.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * @author: Yuki Takei <yuki@weseek.co.jp>
  3. */
  4. const path = require('path');
  5. const webpack = require('webpack');
  6. const helpers = require('./helpers');
  7. /*
  8. * Webpack Plugins
  9. */
  10. const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
  11. /**
  12. * Webpack Constants
  13. */
  14. const ANALYZE = process.env.ANALYZE;
  15. module.exports = require('./webpack.common')({
  16. mode: 'development',
  17. devtool: 'cheap-module-eval-source-map',
  18. entry: {
  19. dev: './resource/js/dev',
  20. },
  21. output: {
  22. filename: '[name].bundle.js',
  23. },
  24. resolve: {
  25. // TODO merge in webpack.common.js
  26. modules: [path.join(process.env.HOME, '.node_modules')],
  27. },
  28. module: {
  29. rules: [
  30. {
  31. test: /\.css$/,
  32. use: [
  33. 'style-loader',
  34. { loader: 'css-loader', options: { sourceMap: true } },
  35. ],
  36. include: [helpers.root('resource/styles/scss')]
  37. },
  38. {
  39. test: /\.scss$/,
  40. use: [
  41. 'style-loader',
  42. { loader: 'css-loader', options: { sourceMap: true } },
  43. { loader: 'sass-loader', options: { sourceMap: true } },
  44. ],
  45. include: [helpers.root('resource/styles/scss')]
  46. },
  47. ],
  48. },
  49. plugins: [
  50. new webpack.DllReferencePlugin({
  51. context: helpers.root('public/dll'),
  52. manifest: path.join(helpers.root('public/dll'), 'manifest.json')
  53. }),
  54. new BundleAnalyzerPlugin({
  55. analyzerMode: ANALYZE ? 'server' : 'disabled',
  56. }),
  57. new webpack.HotModuleReplacementPlugin(),
  58. ],
  59. optimization: {},
  60. performance: {
  61. hints: false
  62. }
  63. });