vue.config.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. const webpack = require('webpack')
  2. const path = require('path');
  3. const CompressionWebpackPlugin = require('compression-webpack-plugin')
  4. const GenerateAssetPlugin = require('generate-asset-webpack-plugin')
  5. const Timestamp = new Date().getTime()
  6. const createServerConfig = function (compilation) {
  7. let config = { version: new Date().getTime() }
  8. return JSON.stringify(config)
  9. }
  10. function resolve(dir) {
  11. return path.join(__dirname, dir)//设置绝对路径
  12. }
  13. module.exports = {
  14. devServer: {
  15. port: "8080", //代理端口
  16. open: false, //项目启动时是否自动打开浏览器,我这里设置为false,不打开,true表示打开
  17. headers: {
  18. 'Access-Control-Allow-Origin': '*',
  19. },
  20. proxy: {
  21. '/cloudApi': {
  22. target: 'http://120.79.80.64:8050',
  23. ws: true,
  24. pathRewrite: {
  25. '^/api': '/'
  26. }
  27. },
  28. }
  29. },
  30. chainWebpack: (config) => {
  31. config.resolve.alias
  32. .set('_static', resolve('src/assets'))//参数1,设置的别名,参数2:设置的路径
  33. config
  34. .plugin('html')
  35. .tap(args => {
  36. args[0].title = '智能仓储一体机'
  37. return args
  38. })
  39. },
  40. // 设为false打包时不生成.map文件
  41. productionSourceMap: false,
  42. configureWebpack: config => {
  43. // 开发环境不需要gzip 生产环境时清空所有console
  44. if (process.env.NODE_ENV !== 'production') return
  45. else config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
  46. config.plugins.push(
  47. new CompressionWebpackPlugin({
  48. // 正在匹配需要压缩的文件后缀
  49. test: /\.(js|css|svg|woff|ttf|json|html)$/,
  50. // 大于10kb的会压缩
  51. threshold: 10240
  52. // 其余配置查看compression-webpack-plugin
  53. })
  54. )
  55. config.plugins.push(
  56. new GenerateAssetPlugin({
  57. filename: 'version.json',
  58. fn: (compilation, cb) => {
  59. cb(null, createServerConfig(compilation))
  60. },
  61. extraFiles: []
  62. })
  63. )
  64. config.plugins.push(
  65. new webpack.ProvidePlugin({
  66. $: 'jquery',
  67. jQuery: 'jquery',
  68. 'window.jQuery': 'jquery'
  69. })
  70. )
  71. config.output.filename = `js/[name].${Timestamp}.js`
  72. config.output.chunkFilename = `js/[name].${Timestamp}.js`
  73. }
  74. }