let path = require("path"); let webpackConfig = require("./webpack.config"); const webpack = require('webpack') const PrerenderSPAPlugin = require('prerender-spa-plugin'); const Renderer = PrerenderSPAPlugin.PuppeteerRenderer; module.exports = { publicPath: '/', outputDir:'dist', //assetsDir:'static',//放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。 pages: { index: { entry: "./src/main.js", template: `./public/index.html`, filename: "index.html" } }, lintOnSave: false, devServer: { open: true, host: "0.0.0.0", port: 8082, contentBase: path.resolve(__dirname, "public"), https: false, hotOnly: false, proxy: { '/': { target: "http://localhost:8080", // target: "https://ymg.hxscredit.gov.cn", // target: "http://192.168.0.181:8080", // // target: "http://192.168.8.17:7206", // target: "http://192.168.8.168:8080", ws: false, changeOrigin: true } }, disableHostCheck: true //before: app => {} }, css: { // 是否从组件中抽取css成一个单个css文件(仅在生产环境中生效) // extract: true, // 是否启动css sourceMap sourceMap: true, // sass-loader, use { sass: { ... } } // 配置css-loader loaderOptions: { sass: { // @/ 是 src/ 的别名 // 所以这里假设你有 `src/variables.scss` 这个文件 additionalData: `@import "@/styles/index.scss";` } }, // 是否为所有css或css预编译文件使用modules模式 modules: false }, //webpack配置 chainWebpack: config => { let webpackAlias = webpackConfig.resolve.alias; Object.keys(webpackAlias).forEach(aliasName => { config.resolve.alias.set(aliasName, webpackAlias[aliasName]); }); }, configureWebpack: config => { if (process.env.NODE_ENV !== 'production') return; return { plugins: [ new webpack.optimize.MinChunkSizePlugin({ minChunkSize: 10000 // 通过合并小于 minChunkSize 大小的 chunk,将 chunk 体积保持在指定大小限制以上 }), new PrerenderSPAPlugin({ // 生成文件的路径,也可以与webpakc打包的一致。 // 下面这句话非常重要!!! // 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。 staticDir: path.join(__dirname, 'dist'), // 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。 routes: ['/', '/medicalGuide'], // 这个很重要,如果没有配置这段,也不会进行预编译 renderer: new Renderer({ inject: { foo: 'bar' }, headless: false, // 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。 renderAfterDocumentEvent: 'render-event' }) }), ], }; }, parallel: require("os").cpus().length > 1 };