webpack.config.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. 'use strict';
  2. let webpack = require('webpack');
  3. let path = require('path');
  4. function _path(p) {
  5. return path.join(__dirname, p);
  6. }
  7. const rules = {
  8. sourceMap: {
  9. enforce: 'pre',
  10. test: /\.js$/,
  11. loader: 'source-map-loader',
  12. },
  13. js: {
  14. test: /\.js$/,
  15. loader: 'babel-loader',
  16. exclude: /(node_modules)/,
  17. options: {
  18. presets: [
  19. 'es2015',
  20. 'stage-0',
  21. ],
  22. passPerPreset: true,
  23. },
  24. },
  25. styles: {
  26. test: /\.css$/,
  27. use: [
  28. 'style-loader',
  29. {
  30. loader: 'css-loader',
  31. options: {
  32. importLoaders: 1
  33. }
  34. },
  35. {
  36. loader: 'postcss-loader',
  37. options: {
  38. plugins: function () {
  39. return [
  40. require('postcss-cssnext')
  41. ];
  42. }
  43. }
  44. }
  45. ]
  46. }
  47. }
  48. module.exports = {
  49. entry: "./app.js",
  50. output: {
  51. path: __dirname,
  52. filename: "build/bundle.js"
  53. },
  54. module: {
  55. rules: [
  56. rules.sourceMap,
  57. rules.js,
  58. rules.styles
  59. ]
  60. },
  61. resolve: {
  62. alias: {}
  63. },
  64. plugins: [
  65. new webpack.SourceMapDevToolPlugin({
  66. // file and reference
  67. filename: '[file].map',
  68. // sources naming
  69. moduleFilenameTemplate: '[absolute-resource-path]',
  70. fallbackModuleFilenameTemplate: '[absolute-resource-path]',
  71. }),
  72. new webpack.LoaderOptionsPlugin({
  73. debug: true
  74. })
  75. ],
  76. bail: true,
  77. // devServer: {
  78. // publicPath: '/',
  79. // stats: {
  80. // colors: true
  81. // },
  82. // host: '0.0.0.0',
  83. // inline: true,
  84. // port: '8080',
  85. // quiet: false,
  86. // noInfo: false,
  87. // },
  88. };