webpack.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. module.exports = [
  4. {
  5. entry: {
  6. main: path.join(__dirname, 'src/main.js'),
  7. },
  8. output: {
  9. filename: '[name].js',
  10. path: path.resolve(__dirname, 'js/dist')
  11. },
  12. module: {
  13. rules: [
  14. {
  15. test: /\.css$/,
  16. use: ['style-loader', 'css-loader']
  17. },
  18. {
  19. test: /davclient/,
  20. use: 'exports-loader?dav'
  21. },
  22. {
  23. test: /\.js$/,
  24. loader: 'babel-loader',
  25. exclude: /node_modules/
  26. },
  27. {
  28. test: /\.(png|jpg|gif)$/,
  29. loader: 'url-loader',
  30. options: {
  31. name: '[name].[ext]?[hash]',
  32. limit: 8192
  33. }
  34. },
  35. {
  36. test: /\.handlebars/,
  37. loader: "handlebars-loader",
  38. query: {
  39. extensions: '.handlebars'
  40. }
  41. }
  42. ]
  43. },
  44. plugins: [
  45. new webpack.ProvidePlugin({
  46. '_': "underscore",
  47. $: "jquery",
  48. jQuery: "jquery"
  49. })
  50. ],
  51. resolve: {
  52. alias: {
  53. handlebars: 'handlebars/runtime'
  54. },
  55. extensions: ['*', '.js'],
  56. symlinks: false
  57. }
  58. },
  59. {
  60. entry: {
  61. share_backend: path.resolve(__dirname, 'js/merged-share-backend.js'),
  62. systemtags: path.resolve(__dirname, 'js/systemtags/merged-systemtags.js')
  63. },
  64. output: {
  65. filename: '[name].js',
  66. path: path.resolve(__dirname, 'js/dist')
  67. },
  68. module: {
  69. rules: [
  70. {
  71. test: /\.js$/,
  72. loader: 'babel-loader',
  73. exclude: /node_modules/
  74. },
  75. {
  76. test: /\.css$/,
  77. use: ['style-loader', 'css-loader']
  78. },
  79. {
  80. test: /\.scss$/,
  81. use: ['style-loader', 'css-loader', 'sass-loader']
  82. },
  83. ]
  84. }
  85. }
  86. ];