vue.config.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. const path = require('path');
  2. const CompressionWebpackPlugin = require("compression-webpack-plugin")
  3. const productionGzipExtensions = ['js', 'css']
  4. function resolve(dir) {
  5. return path.join(__dirname, dir)
  6. }
  7. let title = '';
  8. if (process.env.VUE_APP_NODE_NAME == 'production') {
  9. title = ''
  10. } else if (process.env.VUE_APP_NODE_NAME == 'test') {
  11. title = '(测试)'
  12. } else {
  13. title = '(开发)'
  14. }
  15. const Timestamp = new Date().getTime();
  16. module.exports = {
  17. publicPath: './',
  18. outputDir: 'dist/' + process.env.NODE_ENV,
  19. assetsDir: 'static',
  20. lintOnSave: false,
  21. devServer: {
  22. host: 'localhost',
  23. port: 80,
  24. //解析缓存
  25. disableHostCheck: true,
  26. //支持gzip
  27. compress: true,
  28. },
  29. //不输出map
  30. productionSourceMap: false,
  31. chainWebpack: (config) => {
  32. config.entry.app = ['babel-polyfill', './src/main.js']
  33. config.resolve.alias
  34. .set('@', resolve('./static/'))
  35. config.plugins.delete('preload-index');
  36. config.plugins.delete('prefetch-index');
  37. config.optimization.minimize(true);
  38. },
  39. configureWebpack: config => {
  40. /* //开启gzip压缩,需要配置Nginx服务器gzip选项开启
  41. config.plugins.push(
  42. new CompressionWebpackPlugin({
  43. filename: '[path].gz[query]',
  44. algorithm: 'gzip',
  45. test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
  46. threshold: 10240,
  47. minRatio: 0.8
  48. })
  49. ); */
  50. config.output.filename = `./static/js/[name].${Timestamp}.js`
  51. config.output.chunkFilename = `./static/js/[name].${Timestamp}.js`
  52. config.performance = {
  53. hints: 'warning',
  54. //入口起点的最大体积 整数类型(以字节为单位)
  55. maxEntrypointSize: 50000000,
  56. //生成文件的最大体积 整数类型(以字节为单位 300k)
  57. maxAssetSize: 30000000,
  58. //只给出 js 文件的性能提示
  59. assetFilter: function(assetFilename) {
  60. return assetFilename.endsWith('.js');
  61. }
  62. }
  63. },
  64. css: {
  65. extract: {
  66. filename: `./static/css/[name].${Timestamp}.css`,
  67. chunkFilename: `./static/css/[name].${Timestamp}.css`
  68. },
  69. sourceMap: false,
  70. loaderOptions: {
  71. // 给 sass-loader 传递选项
  72. sass: {
  73. // @/ 是 src/ 的别名
  74. // prependData: `@import "@/assets/scss/base.scss";`
  75. }
  76. }
  77. }
  78. };