webpack.common.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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].[hash].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: require.resolve('jquery'),
  32. use: [
  33. {
  34. loader: 'expose-loader',
  35. query: 'jQuery'
  36. },
  37. {
  38. loader: 'expose-loader',
  39. query: '$'
  40. }
  41. ]
  42. },
  43. {
  44. test: /\.html$/,
  45. exclude: /index\.template.html/,
  46. use: [
  47. { loader: 'ngtemplate-loader?relativeTo=' + (path.resolve(__dirname, '../../public')) + '&prefix=public' },
  48. {
  49. loader: 'html-loader',
  50. options: {
  51. attrs: [],
  52. minimize: true,
  53. removeComments: false,
  54. collapseWhitespace: false
  55. }
  56. }
  57. ]
  58. }
  59. ]
  60. },
  61. plugins: [
  62. new CheckerPlugin(),
  63. ]
  64. };