webpack.common.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. const path = require('path');
  2. const HtmlWebpackPlugin = require('html-webpack-plugin');
  3. const VueLoaderPlugin = require('vue-loader/lib/plugin');
  4. const resolve = function (src) {
  5. return path.resolve(__dirname, src);
  6. };
  7. module.exports = {
  8. entry:{
  9. app: path.resolve(__dirname,'src','index.js'),
  10. //test:path.resolve(__dirname,'src/test','test.js')
  11. },
  12. plugins: [
  13. new VueLoaderPlugin(),
  14. new HtmlWebpackPlugin({
  15. // title:'预诊',
  16. template:path.resolve(__dirname,'src','index.html'),
  17. }),
  18. ],
  19. output: {
  20. filename: "[name].bundle.js",
  21. path: path.resolve(__dirname,'dist')
  22. },
  23. module: {
  24. rules: [{
  25. test:/\.css$/,
  26. use:[
  27. 'style-loader',
  28. 'css-loader',
  29. ]
  30. },{
  31. test:/\.less$/,
  32. use:[
  33. 'style-loader',
  34. 'css-loader',
  35. 'less-loader'
  36. ]
  37. },{
  38. test: /\.(png|svg|jpg|jpeg|gif)/,
  39. use:[{
  40. loader: "file-loader",
  41. options:{
  42. limit:5000,
  43. // name: 'imgs/[name].[ext]'
  44. name: 'images/[name].[ext]'
  45. }
  46. }]
  47. },{
  48. test:/\.vue$/,
  49. use:[
  50. 'vue-loader'
  51. ]
  52. /*use:{
  53. loader:'vue-loader',
  54. options:{
  55. loaders:{
  56. less:'vue-style-loader!css-loader!less-loader'
  57. }
  58. }
  59. }*/
  60. },{
  61. test: /\.js$/,
  62. exclude: file => (
  63. /node_modules/.test(file) &&
  64. !/\.vue\.js/.test(file)
  65. ),
  66. use: {
  67. loader: 'babel-loader',
  68. options: {
  69. presets: ['@babel/preset-env'],
  70. // plugins: ['@babel/plugin-transform-runtime']
  71. }
  72. }
  73. }]
  74. },
  75. resolve: {
  76. extensions: ['.js', '.vue', '.json'],
  77. alias: {
  78. 'vue$':'vue/dist/vue.esm.js' , //让vue使用compiler模式,默认runtime模式要用render初始化
  79. '@':resolve('./src'),
  80. '@components':resolve('./src/components'),
  81. '@less':resolve('./src/less'),
  82. '@utils':resolve('./src/utils')
  83. }
  84. }
  85. };