webpack.config.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. const path=require('path');
  2. const { CleanWebpackPlugin } = require('clean-webpack-plugin');
  3. //const { HtmlWebpackPlugin } = require("html-webpack-plugin");
  4. const HtmlWebpackPlugin = require('html-webpack-plugin');
  5. //const { VueLoaderPlugin } = require('vue-loader/dist/index');
  6. const { VueLoaderPlugin } = require('vue-loader');
  7. module.exports={
  8. entry:{
  9. index:"./index.js",
  10. },
  11. output:{
  12. filename:"bundle.js",
  13. path:path.resolve(__dirname,"./dist")
  14. },
  15. resolve: {
  16. alias: {
  17. vue: 'vue/dist/vue.esm-bundler.js' // 关键配置
  18. }
  19. },
  20. module:{
  21. rules:[
  22. {
  23. test:/\.css$/i,
  24. use:["style-loader","css-loader"]
  25. },
  26. {
  27. test:/\.vue$/,
  28. use:[
  29. { loader:"vue-loader" }
  30. ]
  31. },
  32. // 处理 .js 文件
  33. {
  34. test: /\.js$/,
  35. exclude: /node_modules/,
  36. use: {
  37. loader: 'babel-loader',
  38. options: {
  39. presets: ['@babel/preset-env']
  40. }
  41. }
  42. },
  43. {
  44. test:/\.(png|jpe?g|gif|svg)$/i,
  45. // use:[{
  46. // loader:"file-loader",
  47. // options:{
  48. // limit: 512 * 1024,
  49. // name: "[name].[ext]",
  50. // outputPath:"media",
  51. // },
  52. // }]
  53. type: 'asset/resource',
  54. // generator:{
  55. // filename: "[name].[ext]",
  56. // }
  57. },
  58. {
  59. test:/\.(woff2?|eof|ttf)$/i,
  60. // use:[{
  61. // loader:"file-loader",
  62. // options:{
  63. // limit: 512 * 1024,
  64. // name: "[name].[ext]",
  65. // outputPath:"media",
  66. // },
  67. // }]
  68. type: 'asset/resource',
  69. generator:{
  70. filename: "./font/[name].[ext]",
  71. }
  72. },]
  73. },
  74. plugins:[
  75. new VueLoaderPlugin(),
  76. new CleanWebpackPlugin(),
  77. new HtmlWebpackPlugin({
  78. inject:'head',
  79. title:"index page ",
  80. template:"./index.html",
  81. filename:"index.html",
  82. chunks:['index'],
  83. }),
  84. ]
  85. }