webpack.common.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. const path = require('path');
  2. const {CheckerPlugin} = require('awesome-typescript-loader')
  3. module.exports = {
  4. target: 'web',
  5. stats: {
  6. children: false
  7. },
  8. entry: {
  9. app: './public/app/index.ts',
  10. },
  11. output: {
  12. path: path.resolve(__dirname, '../../public/build'),
  13. filename: '[name].[chunkhash].js',
  14. publicPath: "public/build/",
  15. },
  16. resolve: {
  17. extensions: ['.ts', '.tsx', '.es6', '.js', '.json'],
  18. alias: {
  19. },
  20. modules: [
  21. path.resolve('public'),
  22. path.resolve('node_modules')
  23. ],
  24. },
  25. node: {
  26. fs: 'empty',
  27. },
  28. module: {
  29. rules: [
  30. {
  31. test: /\.tsx?$/,
  32. enforce: 'pre',
  33. exclude: /node_modules/,
  34. use: {
  35. loader: 'tslint-loader',
  36. options: {
  37. emitErrors: true,
  38. typeCheck: false,
  39. }
  40. }
  41. },
  42. {
  43. test: /\.tsx?$/,
  44. exclude: /node_modules/,
  45. use: [
  46. { loader: "awesome-typescript-loader" }
  47. ]
  48. },
  49. {
  50. test: require.resolve('jquery'),
  51. use: [
  52. {
  53. loader: 'expose-loader',
  54. query: 'jQuery'
  55. },
  56. {
  57. loader: 'expose-loader',
  58. query: '$'
  59. }
  60. ]
  61. },
  62. {
  63. test: /\.html$/,
  64. exclude: /index\.template.html/,
  65. use: [
  66. { loader:'ngtemplate-loader?relativeTo=' + (path.resolve(__dirname, '../../public')) + '&prefix=public'},
  67. {
  68. loader: 'html-loader',
  69. options: {
  70. attrs: [],
  71. minimize: true,
  72. removeComments: false,
  73. collapseWhitespace: false
  74. }
  75. }
  76. ]
  77. }
  78. ]
  79. },
  80. plugins: [
  81. new CheckerPlugin(),
  82. ]
  83. };