webpack.base.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. const { VueLoaderPlugin } = require('vue-loader')
  4. const ESLintPlugin = require('eslint-webpack-plugin');
  5. module.exports = {
  6. module: {
  7. rules: [
  8. {
  9. test: /\.vue$/,
  10. loader: 'vue-loader',
  11. },
  12. {
  13. // 使用babel-loader处理js文件,会将es5以上的语法进行转义(无法转义es6 API)
  14. test: /\.js$/, // 处理后缀名为js的文件
  15. loader: 'babel-loader', // 使用babel-loader进行处理
  16. exclude: /node_modules/, //排除node_modules下的文件
  17. include: [path.resolve(__dirname, 'packages'), path.resolve(__dirname, 'examples')],
  18. // options: {
  19. // presets: ["@babel/env"]
  20. // }
  21. },
  22. {
  23. test: /\.css$/,
  24. use: [
  25. 'style-loader',
  26. 'css-loader'
  27. ],
  28. },
  29. {
  30. test: /\.(png|jpg|gif|svg)$/,
  31. loader: 'file-loader',
  32. options: {
  33. name: '[name].[ext]?[hash]'
  34. }
  35. }
  36. ]
  37. },
  38. resolve: {
  39. alias: {
  40. '@': path.resolve(__dirname, 'packages'),
  41. },
  42. extensions: ['*', '.js', '.vue', '.json']
  43. },
  44. performance: {
  45. hints: false
  46. },
  47. // 不把第三方库打包到bundle中
  48. externals: {
  49. jQuery: 'window.$',
  50. jquery: 'window.$',
  51. $: 'window.$',
  52. bootstrap: 'bootstrap',
  53. moment: 'moment'
  54. },
  55. plugins: [
  56. new VueLoaderPlugin(),
  57. new ESLintPlugin({
  58. extensions: ['js', 'vue'],
  59. // 自动修复。
  60. // 自从eslint推出--fix命令后,如果觉得eslint格式化规则已经够用的话,其实也可以不用prettier了。
  61. fix: true,
  62. }),
  63. ]
  64. }