webpack.base.config.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. const path = require('path');
  2. //const webpack = require('webpack');
  3. const VueLoaderPlugin = require('vue-loader/lib/plugin');
  4. const clientDir = path.resolve(__dirname, '../client');
  5. module.exports = {
  6. resolve: {
  7. fallback: {
  8. "url": false,
  9. "path": false,
  10. }
  11. },
  12. entry: [`${clientDir}/main.js`],
  13. output: {
  14. publicPath: '/app/',
  15. },
  16. module: {
  17. rules: [
  18. {
  19. test: /\.vue$/,
  20. loader: "vue-loader"
  21. },
  22. {
  23. test: /\.includer$/,
  24. resourceQuery: /^\?vue/,
  25. use: path.resolve('build/includer.js')
  26. },
  27. {
  28. test: /\.js$/,
  29. loader: 'babel-loader',
  30. exclude: /node_modules/,
  31. options: {
  32. presets: [['@babel/preset-env', { targets: { esmodules: true } }]],
  33. plugins: [
  34. ['@babel/plugin-proposal-decorators', { legacy: true }]
  35. ]
  36. }
  37. },
  38. {
  39. test: /\.(gif|png)$/,
  40. type: 'asset/inline',
  41. },
  42. {
  43. test: /\.jpg$/,
  44. type: 'asset/resource',
  45. generator: {
  46. filename: 'images/[name]-[hash:6][ext]'
  47. },
  48. },
  49. {
  50. test: /\.(ttf|eot|woff|woff2)$/,
  51. type: 'asset/resource',
  52. generator: {
  53. filename: 'fonts/[name]-[hash:6][ext]'
  54. },
  55. },
  56. /*{
  57. test: /\.gif$/,
  58. loader: "url-loader",
  59. options: {
  60. name: "images/[name]-[hash:6].[ext]"
  61. }
  62. },
  63. {
  64. test: /\.png$/,
  65. loader: "url-loader",
  66. options: {
  67. name: "images/[name]-[hash:6].[ext]"
  68. }
  69. },
  70. {
  71. test: /\.jpg$/,
  72. loader: "file-loader",
  73. options: {
  74. name: "images/[name]-[hash:6].[ext]"
  75. }
  76. },
  77. {
  78. test: /\.(ttf|eot|woff|woff2)$/,
  79. loader: "file-loader",
  80. options: {
  81. name: "fonts/[name]-[hash:6].[ext]"
  82. }
  83. },*/
  84. ]
  85. },
  86. plugins: [
  87. new VueLoaderPlugin(),
  88. ]
  89. };