webpack.config.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. var path = require('path');
  2. // `CheckerPlugin` is optional. Use it if you want async error reporting.
  3. // We need this plugin to detect a `--watch` mode. It may be removed later
  4. // after https://github.com/webpack/webpack/issues/3460 will be resolved.
  5. var CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
  6. // Use sourcemaps if in watch or debug mode;
  7. var devtool = 'eval';
  8. if (process.argv.indexOf('--watch') !== -1) {
  9. devtool = 'cheap-module-eval-sourcemap';
  10. }
  11. module.exports = {
  12. resolve: {
  13. extensions: ['.ts', '.js']
  14. },
  15. bail: true,
  16. devtool: devtool,
  17. plugins: [
  18. new CheckerPlugin(),
  19. ],
  20. module: {
  21. rules: [
  22. {
  23. test: /\.ts$/,
  24. use: [
  25. {
  26. loader: 'awesome-typescript-loader',
  27. query: {
  28. sourceMap: false,
  29. inlineSourceMap: true,
  30. compilerOptions: {
  31. removeComments: true
  32. }
  33. }
  34. }
  35. ]
  36. },
  37. { test: /\.js$/,
  38. use: ['source-map-loader'],
  39. enforce: 'pre',
  40. // eslint-disable-next-line no-undef
  41. exclude: path.join(process.cwd(), 'node_modules')
  42. },
  43. { test: /\.css$/, use: ['style-loader', 'css-loader'] },
  44. { test: /\.csv$/, use: 'raw-loader' },
  45. { test: /\.(json|ipynb)$/, use: 'json-loader' },
  46. { test: /\.html$/, use: 'file-loader' },
  47. { test: /\.md$/, use: 'raw-loader' },
  48. { test: /\.(jpg|png|gif)$/, use: 'file-loader' },
  49. { test: /\.js.map$/, use: 'file-loader' },
  50. { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, use: 'url-loader?limit=10000&mimetype=application/font-woff' },
  51. { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, use: 'url-loader?limit=10000&mimetype=application/font-woff' },
  52. { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, use: 'url-loader?limit=10000&mimetype=application/octet-stream' },
  53. { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, use: 'file-loader' },
  54. { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, use: 'url-loader?limit=10000&mimetype=image/svg+xml' },
  55. ]
  56. },
  57. };