webpack.config.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. const path = require("path")
  2. const webpack = require("webpack")
  3. module.exports = {
  4. target: 'node',
  5. entry: {
  6. 'index.ignore': 'file-loader?name=index.html!val-loader!pug-html-loader!./app/index.pug',
  7. 'preload': './app/src/entry.preload.ts',
  8. 'bundle': './app/src/entry.ts',
  9. },
  10. devtool: 'source-map',
  11. output: {
  12. path: 'app/assets/webpack',
  13. pathinfo: true,
  14. //publicPath: 'assets/webpack/',
  15. filename: '[name].js'
  16. },
  17. resolve: {
  18. modules: ['app/src/', 'node_modules', 'app/assets/'],
  19. extensions: ['.ts', '.js'],
  20. },
  21. module: {
  22. loaders: [
  23. {
  24. test: /\.ts$/,
  25. loader: 'awesome-typescript-loader'
  26. },
  27. {
  28. test: /\.pug$/,
  29. exclude: [
  30. /index.pug/
  31. ],
  32. loaders: [
  33. {
  34. loader: 'apply-loader'
  35. },
  36. {
  37. loader: 'pug-loader'
  38. }
  39. ]
  40. },
  41. { test: /\.css$/, loader: "style-loader!css-loader" },
  42. {
  43. test: /\.less$/,
  44. loader: "style-loader!css-loader!less-loader",
  45. exclude: [/app\/src\/components\//],
  46. },
  47. {
  48. test: /\.less$/,
  49. loader: "to-string-loader!css-loader!less-loader",
  50. include: [/app\/src\/components\//],
  51. },
  52. {
  53. test: /\.(png|svg)$/,
  54. loader: "file-loader",
  55. query: {
  56. name: 'images/[name].[hash:8].[ext]'
  57. }
  58. },
  59. {
  60. test: /\.(ttf|eot|otf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  61. loader: "file-loader",
  62. query: {
  63. name: 'fonts/[name].[hash:8].[ext]'
  64. }
  65. },
  66. ]
  67. },
  68. externals: {
  69. 'electron': 'require("electron")',
  70. 'net': 'require("net")',
  71. 'remote': 'require("remote")',
  72. 'shell': 'require("shell")',
  73. 'ipc': 'require("ipc")',
  74. 'fs': 'require("fs")',
  75. 'buffer': 'require("buffer")',
  76. 'pty.js': 'require("pty.js")',
  77. 'system': '{}',
  78. 'file': '{}'
  79. },
  80. plugins: [
  81. new webpack.ProvidePlugin({
  82. "window.jQuery": "jquery",
  83. }),
  84. ]
  85. }
  86. if (!process.env.DEV) {
  87. module.exports.plugins.push(new webpack.LoaderOptionsPlugin({
  88. minimize: true,
  89. }))
  90. module.exports.plugins.push(new webpack.optimize.UglifyJsPlugin({
  91. sourceMap: true,
  92. mangle: false,
  93. }))
  94. module.exports.devtool = 'source-map'
  95. }