webpack.config.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. const path = require('path')
  2. const webpack = require('webpack')
  3. module.exports = {
  4. target: 'web',
  5. entry: {
  6. 'index.ignore': 'file-loader?name=../index.html!pug-html-loader!' + path.resolve(__dirname, './index.pug'),
  7. 'terminal.ignore': 'file-loader?name=terminal.html!pug-html-loader!' + path.resolve(__dirname, './terminal.pug'),
  8. index: path.resolve(__dirname, 'index.ts'),
  9. terminal: path.resolve(__dirname, 'terminal.ts'),
  10. },
  11. mode: process.env.TERMINUS_DEV ? 'development' : 'production',
  12. context: __dirname,
  13. devtool: 'source-map',
  14. output: {
  15. path: path.join(__dirname, 'dist'),
  16. pathinfo: true,
  17. filename: '[name].js',
  18. chunkFilename: '[name].bundle.js',
  19. },
  20. resolve: {
  21. modules: [
  22. '../tabby/tabby-core/node_modules/',
  23. '../tabby/tabby-settings/node_modules/',
  24. '../tabby/tabby-terminal/node_modules/',
  25. '../tabby/node_modules',
  26. '../tabby/app/node_modules',
  27. '../tabby/app/assets/',
  28. ].map(x => path.join(__dirname, x)),
  29. extensions: ['.ts', '.js'],
  30. },
  31. module: {
  32. rules: [
  33. {
  34. test: /\.ts$/,
  35. use: {
  36. loader: 'awesome-typescript-loader',
  37. options: {
  38. configFileName: path.resolve(__dirname, 'tsconfig.json'),
  39. paths: {
  40. "terminus-*": [path.resolve(__dirname, '../terminus-*')],
  41. "*": [path.resolve(__dirname, '../../app/node_modules/*')],
  42. }
  43. },
  44. },
  45. },
  46. { test: /terminus\/app\/dist/, use: ['script-loader'] },
  47. { test: /dist\/index/, use: ['raw-loader'] },
  48. {
  49. test: /\.(ttf|eot|otf|woff|woff2)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  50. use: {
  51. loader: 'file-loader',
  52. options: {
  53. name: 'fonts/[name].[ext]',
  54. },
  55. },
  56. },
  57. { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
  58. { test: /\.css$/, use: ['css-loader', 'sass-loader'] },
  59. {
  60. test: /\.(jpeg|png|svg)?$/,
  61. use: {
  62. loader: 'file-loader',
  63. options: {
  64. name: '[name].[ext]'
  65. }
  66. }
  67. }
  68. ],
  69. },
  70. externals: {
  71. 'fs': 'commonjs fs',
  72. 'module': 'commonjs module'
  73. }
  74. }