webpack.config.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. const path = require('path')
  2. const webpack = require('webpack')
  3. module.exports = {
  4. name: 'tabby',
  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.TABBY_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. publicPath: 'auto',
  23. },
  24. resolve: {
  25. modules: ['src/', 'node_modules', '../node_modules', 'assets/'].map(x => path.join(__dirname, x)),
  26. extensions: ['.ts', '.js'],
  27. },
  28. module: {
  29. rules: [
  30. {
  31. test: /\.ts$/,
  32. use: {
  33. loader: 'ts-loader',
  34. options: {
  35. configFile: path.resolve(__dirname, 'tsconfig.json'),
  36. },
  37. },
  38. },
  39. { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
  40. { test: /\.css$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
  41. {
  42. test: /\.(png|svg|ttf|eot|otf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  43. type: 'asset',
  44. },
  45. ],
  46. },
  47. externals: {
  48. '@electron/remote': 'commonjs @electron/remote',
  49. 'v8-compile-cache': 'commonjs v8-compile-cache',
  50. child_process: 'commonjs child_process',
  51. electron: 'commonjs electron',
  52. fs: 'commonjs fs',
  53. module: 'commonjs module',
  54. mz: 'commonjs mz',
  55. path: 'commonjs path',
  56. },
  57. plugins: [
  58. new webpack.optimize.ModuleConcatenationPlugin(),
  59. new webpack.DefinePlugin({
  60. 'process.type': '"renderer"',
  61. }),
  62. ],
  63. }