webpack.common.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. const path = require("path");
  2. const { VueLoaderPlugin } = require("vue-loader");
  3. const HtmlWebpackPlugin = require("html-webpack-plugin");
  4. const ESLintPlugin = require("eslint-webpack-plugin");
  5. const package_json = require("./package.json");
  6. module.exports = {
  7. entry: "./src/main.js",
  8. output: {
  9. path: `${__dirname}/dist/build/`,
  10. filename: "[name].[contenthash].js"
  11. },
  12. resolve: {
  13. alias: {
  14. "@": path.resolve(__dirname, "./src/")
  15. },
  16. extensions: [".js", ".vue"]
  17. },
  18. plugins: [
  19. new VueLoaderPlugin(),
  20. new HtmlWebpackPlugin({
  21. hash: true,
  22. template: "dist/index.tpl.html",
  23. inject: "body",
  24. filename: "index.html",
  25. musareVersion: package_json.version
  26. }),
  27. new ESLintPlugin()
  28. ],
  29. module: {
  30. rules: [
  31. {
  32. test: /\.vue$/,
  33. loader: "vue-loader",
  34. exclude: /node_modules/
  35. },
  36. {
  37. test: /\.js$/,
  38. loader: "babel-loader",
  39. exclude: /node_modules/
  40. },
  41. {
  42. test: /\.scss$/,
  43. exclude: /node_modules/,
  44. use: [
  45. "vue-style-loader",
  46. {
  47. loader: "css-loader",
  48. options: {
  49. url: false
  50. }
  51. },
  52. "sass-loader"
  53. ]
  54. }
  55. ]
  56. }
  57. };