vue.config.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. const {defineConfig} = require('@vue/cli-service')
  2. const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')
  3. const path = require("path")
  4. const webpack = require("webpack")
  5. const CopyWebpackPlugin = require("copy-webpack-plugin")
  6. const cesiumSource = "node_modules/cesium/Source"
  7. const cesiumWorkers = "../Build/Cesium/Workers"
  8. module.exports = defineConfig({
  9. transpileDependencies: true,
  10. lintOnSave: false,
  11. configureWebpack: {
  12. resolve: {
  13. alias: {
  14. // 添加一个cesium别名,以便我们在项目中轻松的引入它
  15. cesium: path.resolve(cesiumSource)
  16. }
  17. },
  18. amd: {
  19. // Cesium源码模块化使用的requireJs
  20. // 此配置允许webpack友好地在铯中使用require,使webpack打包cesium
  21. // 告诉Cesium, AMD的webpack版本用来评估要求的声明是不符合标准的toUrl功能
  22. toUrlUndefined: true
  23. },
  24. module: {
  25. // 解决require引入警告
  26. unknownContextCritical: false
  27. },
  28. plugins: [
  29. new webpack.DefinePlugin({
  30. // 在cesium中定义用于加载资源的相对基路径
  31. CESIUM_BASE_URL: JSON.stringify("/")
  32. }),
  33. // 对build生效,拷贝到dist目录下。如:dist/Assets
  34. new CopyWebpackPlugin({
  35. patterns: [
  36. {
  37. from: path.join(cesiumSource, cesiumWorkers),
  38. to: "Workers"
  39. },
  40. {
  41. from: path.join(cesiumSource, "Assets"),
  42. to: "Assets"
  43. },
  44. {
  45. from: path.join(cesiumSource, "Widgets"),
  46. to: "Widgets"
  47. },
  48. {
  49. from: path.join(cesiumSource, "ThirdParty"),
  50. to: "ThirdParty"
  51. }
  52. ]
  53. }),
  54. // 使Cesium对象实例可在每个js中使用而无须import
  55. new webpack.ProvidePlugin({
  56. Cesium: ["cesium/Cesium"]
  57. }),
  58. new NodePolyfillPlugin()
  59. ],
  60. optimization: {
  61. // 抽取公共模块执行压缩
  62. minimize: process.env.NODE_ENV === "production"
  63. },
  64. // sourcemap生成
  65. devtool: process.env.NODE_ENV === "production" ? false : "source-map"
  66. },
  67. devServer: {
  68. port: 8080,
  69. proxy: {
  70. '/proxy_oauth/': {
  71. target: process.env.VUE_APP_OAUTHURL,
  72. changeOrigin: true,
  73. pathRewrite: {
  74. '^/proxy_oauth': ''
  75. }
  76. },
  77. '/proxy_dtbserver/': {
  78. target: process.env.VUE_APP_BASEURL,
  79. changeOrigin: true,
  80. pathRewrite: {
  81. '^/proxy_dtbserver': ''
  82. }
  83. },
  84. }
  85. }
  86. })