天波h5前端应用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
4.0KB

  1. /*
  2. * @Author: your name
  3. * @Date: 2020-04-15 10:00:32
  4. * @LastEditTime: 2023-10-12 17:24:41
  5. * @LastEditors: JinxChen
  6. * @Description: In User Settings Edit
  7. * @FilePath: \TelpoH5FrontendWeb\vue.config.js
  8. */
  9. const autoprefixer = require('autoprefixer'); // 根据屏幕动态改变根元素font-size
  10. const pxtorem = require('postcss-pxtorem'); // 把代码中px转为rem
  11. // const CompressionWebpackPlugin = require('compress-webpack-plugin');
  12. const CompressionPlugin = require("compression-webpack-plugin");
  13. const port = process.env.port || process.env.npm_config_port || 8080;/* 7788 */ // dev port
  14. const proxy = process.env.NODE_ENV === 'development' ?{
  15. // 调试完毕需要把这个代理注释掉,否则发布到线上会有问题产生
  16. /* '/api/id': {
  17. target: 'http://id.ssjlai.com/iotservice',
  18. changeOrigin: true,
  19. pathRewrite: {
  20. '^/api/id': ''
  21. }
  22. },
  23. '/api/ai': {
  24. target: 'https://ai.ssjlai.com/watersoutboundapi/',
  25. changeOrigin: true,
  26. pathRewrite: {
  27. '^/api/ai': ''
  28. }
  29. } */
  30. }
  31. : null;
  32. module.exports = {
  33. // 注意: 多页面配置 不再使用全路径,单页面时可以开启
  34. publicPath: './',
  35. outputDir: 'dist',
  36. // assetsDir: 'static',
  37. // lintOnSave: process.env.NODE_ENV === 'development',
  38. productionSourceMap: false,
  39. devServer: {
  40. port: port,
  41. open: true,
  42. overlay: {
  43. warnings: false,
  44. errors: true
  45. },
  46. /* proxy: proxy, */ //开启代理后必须也要把这个开启,否则不生效
  47. /* host: '192.168.3.186', */// 原为: hotst: 'localhost', 可在同一ip局域网下通过网址生成二维码的方式调试h5, 注意:调试完毕请注释
  48. //disableHostCheck: true, //真机调试开启
  49. },
  50. css: {
  51. // 将组件内部的css提取到一个单独的css文件(只用在生产环境)
  52. // 也可以是传递给 extract-text-webpack-plugin 的选项对象
  53. extract: true,
  54. // 允许生成 CSS source maps?
  55. sourceMap: true,
  56. // pass custom options to pre-processor loaders. e.g. to pass options to // sass-loader, use { sass: { ... } }
  57. loaderOptions: {
  58. sass: {
  59. // 比如你可以这样向所有 Sass/Less 样式传入共享的全局变量
  60. prependData: `@import "@/assets/css/public.scss";`
  61. },
  62. postcss: {
  63. plugins: [
  64. autoprefixer({
  65. overrideBrowserslist: ["last 15 versions"]
  66. }),
  67. pxtorem({
  68. rootValue: 37.5, // 换算的基数
  69. /* rootValue: 75, */ // 换算的基数
  70. selectorBlackList: ["van"],
  71. propList: ["*"],
  72. //exclude: /node_modules/
  73. })
  74. ]
  75. }
  76. },
  77. // Enable CSS modules for all css / pre-processor files. // This option does not affect *.vue files.
  78. requireModuleExtension: true
  79. },
  80. configureWebpack: {
  81. externals: {
  82. 'AMap': 'AMap'
  83. }
  84. },
  85. chainWebpack: config => {
  86. // 该配置用来配置打包生成的文件是否带hash值后缀,该值默认为true,
  87. // 在模式为production的时候,打包出的js和css文件会自动添加hash值后缀。
  88. // 但是在当前模式为development的时候,就算该值为true,打包出的js文件不带hash值(css文件仍然受该值控制)。
  89. // 这个时候我们该怎么给打包的文件增加hash值呢:
  90. if (process.env.NODE_ENV !== 'production')
  91. config.output.filename('js/[name].[hash].js').chunkFilename('js/[name].[hash].js').end();
  92. // 如果filenameHashing设置为了false,可以通过这段代码给打包出的css文件增加hash值
  93. // config.plugin('extract-css').tap(args => [{
  94. // filename: 'css/[name].[hash].css',
  95. // chunkFilename: 'css/[name].[hash].css'
  96. // }])
  97. }
  98. };