webpack.common.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. {
  26. test:/\.css$/,
  27. use:[
  28. // 'style-loader',
  29. 'vue-style-loader',
  30. 'css-loader',
  31. ]
  32. },
  33. {
  34. test:/\.less$/,
  35. use:[
  36. // 'style-loader',
  37. 'vue-style-loader',
  38. 'css-loader',
  39. 'less-loader'
  40. ]
  41. },
  42. {
  43. test: /\.(png|svg|jpg|jpeg|gif)/,
  44. use:[{
  45. loader: "file-loader",
  46. options:{
  47. limit:5000,
  48. // name: 'imgs/[name].[ext]'
  49. name: 'images/[name].[ext]'
  50. }
  51. }]
  52. },
  53. {
  54. test:/\.vue$/,
  55. /*use:[
  56. 'vue-loader'
  57. ]*/
  58. use:{
  59. loader:'vue-loader',
  60. options:{
  61. loaders:{
  62. less:'vue-style-loader!css-loader!less-loader'
  63. }
  64. }
  65. }
  66. },
  67. {
  68. test: /\.js$/,
  69. exclude: file => (
  70. /node_modules/.test(file) &&
  71. !/\.vue\.js/.test(file)
  72. ),
  73. use: {
  74. loader: 'babel-loader',
  75. options: {
  76. presets: ['@babel/preset-env'],
  77. // plugins: ['@babel/plugin-transform-runtime']
  78. }
  79. }
  80. }
  81. ]
  82. },
  83. resolve: {
  84. extensions: ['.js', '.vue', '.json'],
  85. alias: {
  86. 'vue$':'vue/dist/vue.esm.js' , //让vue使用compiler模式,默认runtime模式要用render初始化
  87. '@':resolve('./src'),
  88. '@components':resolve('./src/components'),
  89. '@less':resolve('./src/less'),
  90. '@utils':resolve('./src/utils')
  91. }
  92. }
  93. };