webpack.dev.js 1.6 KB

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