vue.config.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. let path = require("path");
  2. let webpackConfig = require("./webpack.config");
  3. const webpack = require('webpack')
  4. const PrerenderSPAPlugin = require('prerender-spa-plugin');
  5. const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
  6. module.exports = {
  7. publicPath: '/',
  8. outputDir:'dist',
  9. //assetsDir:'static',//放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
  10. pages: {
  11. index: {
  12. entry: "./src/main.js",
  13. template: `./public/index.html`,
  14. filename: "index.html"
  15. }
  16. },
  17. lintOnSave: false,
  18. devServer: {
  19. open: true,
  20. host: "0.0.0.0",
  21. port: 8082,
  22. contentBase: path.resolve(__dirname, "public"),
  23. https: false,
  24. hotOnly: false,
  25. proxy: {
  26. '/': {
  27. target: "http://localhost:8080",
  28. // target: "https://ymg.hxscredit.gov.cn",
  29. // target: "http://192.168.0.181:8080",
  30. // // target: "http://192.168.8.17:7206",
  31. // target: "http://192.168.8.168:8080",
  32. ws: false,
  33. changeOrigin: true
  34. }
  35. },
  36. disableHostCheck: true
  37. //before: app => {}
  38. },
  39. css: {
  40. // 是否从组件中抽取css成一个单个css文件(仅在生产环境中生效)
  41. // extract: true,
  42. // 是否启动css sourceMap
  43. sourceMap: true,
  44. // sass-loader, use { sass: { ... } }
  45. // 配置css-loader
  46. loaderOptions: {
  47. sass: {
  48. // @/ 是 src/ 的别名
  49. // 所以这里假设你有 `src/variables.scss` 这个文件
  50. additionalData: `@import "@/styles/index.scss";`
  51. }
  52. },
  53. // 是否为所有css或css预编译文件使用modules模式
  54. modules: false
  55. },
  56. //webpack配置
  57. chainWebpack: config => {
  58. let webpackAlias = webpackConfig.resolve.alias;
  59. Object.keys(webpackAlias).forEach(aliasName => {
  60. config.resolve.alias.set(aliasName, webpackAlias[aliasName]);
  61. });
  62. },
  63. configureWebpack: config => {
  64. if (process.env.NODE_ENV !== 'production') return;
  65. return {
  66. plugins: [
  67. new webpack.optimize.MinChunkSizePlugin({
  68. minChunkSize: 10000 // 通过合并小于 minChunkSize 大小的 chunk,将 chunk 体积保持在指定大小限制以上
  69. }),
  70. new PrerenderSPAPlugin({
  71. // 生成文件的路径,也可以与webpakc打包的一致。
  72. // 下面这句话非常重要!!!
  73. // 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。
  74. staticDir: path.join(__dirname, 'dist'),
  75. // 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。
  76. routes: ['/', '/medicalGuide'],
  77. // 这个很重要,如果没有配置这段,也不会进行预编译
  78. renderer: new Renderer({
  79. inject: {
  80. foo: 'bar'
  81. },
  82. headless: false,
  83. // 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。
  84. renderAfterDocumentEvent: 'render-event'
  85. })
  86. }),
  87. ],
  88. };
  89. },
  90. parallel: require("os").cpus().length > 1
  91. };