webpack.common.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. }
  45. }]
  46. },{
  47. test:/\.vue$/,
  48. use:[
  49. 'vue-loader'
  50. ]
  51. },{
  52. test: /\.js$/,
  53. exclude: file => (
  54. /node_modules/.test(file) &&
  55. !/\.vue\.js/.test(file)
  56. ),
  57. use: {
  58. loader: 'babel-loader',
  59. options: {
  60. presets: ['@babel/preset-env'],
  61. // plugins: ['@babel/plugin-transform-runtime']
  62. }
  63. }
  64. }]
  65. },
  66. resolve: {
  67. alias: {
  68. 'vue$':'vue/dist/vue.esm.js' , //让vue使用compiler模式,默认runtime模式要用render初始化
  69. '@':resolve('./src'),
  70. '@components':resolve('./src/components'),
  71. '@less':resolve('./src/less'),
  72. '@utils':resolve('./src/utils')
  73. }
  74. }
  75. };