webpack.base.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. const { VueLoaderPlugin } = require('vue-loader')
  4. module.exports = {
  5. module: {
  6. rules: [
  7. {
  8. test: /\.css$/,
  9. use: [
  10. 'style-loader',
  11. 'css-loader'
  12. ],
  13. },
  14. {
  15. test: /\.vue$/,
  16. loader: 'vue-loader',
  17. options: {
  18. // other vue-loader options go here
  19. }
  20. },
  21. {
  22. // 使用babel-loader处理js文件,会将es5以上的语法进行转义(无法转义es6 API)
  23. test: /\.js$/, // 处理后缀名为js的文件
  24. loader: 'babel-loader', // 使用babel-loader进行处理
  25. exclude: /node_modules/, //排除node_modules下的文件
  26. include: [path.resolve(__dirname,'packages'), path.resolve(__dirname,'examples')],
  27. options: {
  28. presets: ["@babel/env"]
  29. }
  30. },
  31. {
  32. test: /\.(png|jpg|gif|svg)$/,
  33. loader: 'file-loader',
  34. options: {
  35. name: '[name].[ext]?[hash]'
  36. }
  37. }
  38. ]
  39. },
  40. resolve: {
  41. alias: {
  42. '@': path.resolve(__dirname,'packages'),
  43. // 'vue$': 'vue/dist/vue.esm.js'
  44. },
  45. extensions: ['*', '.js', '.vue', '.json']
  46. },
  47. performance: {
  48. hints: false
  49. },
  50. externals: {
  51. jQuery: 'window.$',
  52. jquery: 'window.$',
  53. bootstrap: 'bootstrap',
  54. moment: 'moment',
  55. },
  56. plugins: [
  57. new VueLoaderPlugin()
  58. ]
  59. }