webpack.config.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. sentry: path.resolve(__dirname, 'lib/sentry.ts'),
  9. preload: path.resolve(__dirname, 'src/entry.preload.ts'),
  10. bundle: path.resolve(__dirname, 'src/entry.ts'),
  11. },
  12. mode: process.env.TERMINUS_DEV ? 'development' : 'production',
  13. optimization:{
  14. minimize: false,
  15. },
  16. context: __dirname,
  17. devtool: 'source-map',
  18. output: {
  19. path: path.join(__dirname, 'dist'),
  20. pathinfo: true,
  21. filename: '[name].js',
  22. },
  23. resolve: {
  24. modules: ['src/', 'node_modules', '../node_modules', 'assets/'].map(x => path.join(__dirname, x)),
  25. extensions: ['.ts', '.js'],
  26. },
  27. module: {
  28. rules: [
  29. {
  30. test: /\.ts$/,
  31. use: {
  32. loader: 'awesome-typescript-loader',
  33. options: {
  34. configFileName: path.resolve(__dirname, 'tsconfig.json'),
  35. },
  36. },
  37. },
  38. { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
  39. { test: /\.css$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
  40. {
  41. test: /\.(png|svg)$/,
  42. use: {
  43. loader: 'file-loader',
  44. options: {
  45. name: 'images/[name].[ext]',
  46. },
  47. },
  48. },
  49. {
  50. test: /\.(ttf|eot|otf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  51. use: {
  52. loader: 'file-loader',
  53. options: {
  54. name: 'fonts/[name].[ext]',
  55. },
  56. },
  57. },
  58. ],
  59. },
  60. externals: {
  61. '@angular/core': 'commonjs @angular/core',
  62. '@angular/compiler': 'commonjs @angular/compiler',
  63. '@angular/platform-browser': 'commonjs @angular/platform-browser',
  64. '@angular/platform-browser-dynamic': 'commonjs @angular/platform-browser-dynamic',
  65. '@angular/forms': 'commonjs @angular/forms',
  66. '@angular/common': 'commonjs @angular/common',
  67. '@ng-bootstrap/ng-bootstrap': 'commonjs @ng-bootstrap/ng-bootstrap',
  68. child_process: 'commonjs child_process',
  69. electron: 'commonjs electron',
  70. 'electron-is-dev': 'commonjs electron-is-dev',
  71. fs: 'commonjs fs',
  72. 'ngx-toastr': 'commonjs ngx-toastr',
  73. module: 'commonjs module',
  74. mz: 'commonjs mz',
  75. path: 'commonjs path',
  76. rxjs: 'commonjs rxjs',
  77. 'zone.js': 'commonjs zone.js/dist/zone.js',
  78. },
  79. plugins: [
  80. new webpack.optimize.ModuleConcatenationPlugin(),
  81. new webpack.DefinePlugin({
  82. 'process.type': '"renderer"'
  83. }),
  84. ],
  85. }