webpack.config.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const path = require('path')
  2. const webpack = require('webpack')
  3. module.exports = {
  4. name: 'terminus',
  5. target: 'node',
  6. entry: {
  7. 'index.ignore': 'file-loader?name=index.html!pug-html-loader!' + path.resolve(__dirname, './index.pug'),
  8. 'preload': path.resolve(__dirname, 'src/entry.preload.ts'),
  9. 'bundle': path.resolve(__dirname, 'src/entry.ts'),
  10. },
  11. context: __dirname,
  12. devtool: 'source-map',
  13. output: {
  14. path: path.join(__dirname, 'assets', 'webpack'),
  15. pathinfo: true,
  16. //publicPath: 'assets/webpack/',
  17. filename: '[name].js'
  18. },
  19. resolve: {
  20. modules: ['src/', 'node_modules', '../node_modules', 'assets/'].map(x => path.join(__dirname, x)),
  21. extensions: ['.ts', '.js'],
  22. },
  23. module: {
  24. loaders: [
  25. {
  26. test: /\.ts$/,
  27. use: 'awesome-typescript-loader',
  28. exclude: [/node_modules/]
  29. },
  30. {
  31. test: /\.scss$/,
  32. use: ['style-loader', 'css-loader', 'sass-loader'],
  33. },
  34. {
  35. test: /\.css$/,
  36. use: ['style-loader', 'css-loader', 'sass-loader'],
  37. },
  38. {
  39. test: /\.(png|svg)$/,
  40. loader: "file-loader",
  41. options: {
  42. name: 'images/[name].[hash:8].[ext]'
  43. }
  44. },
  45. {
  46. test: /\.(ttf|eot|otf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  47. loader: "file-loader",
  48. options: {
  49. name: 'fonts/[name].[hash:8].[ext]'
  50. }
  51. }
  52. ]
  53. },
  54. externals: {
  55. '@angular/core': 'commonjs @angular/core',
  56. '@angular/compiler': 'commonjs @angular/compiler',
  57. '@angular/platform-browser': 'commonjs @angular/platform-browser',
  58. '@angular/platform-browser-dynamic': 'commonjs @angular/platform-browser-dynamic',
  59. '@angular/forms': 'commonjs @angular/forms',
  60. '@angular/common': 'commonjs @angular/common',
  61. '@ng-bootstrap/ng-bootstrap': 'commonjs @ng-bootstrap/ng-bootstrap',
  62. 'rxjs': 'commonjs rxjs',
  63. 'zone.js': 'commonjs zone.js',
  64. },
  65. plugins: [
  66. new webpack.ProvidePlugin({
  67. "window.jQuery": "jquery",
  68. }),
  69. ]
  70. }