温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在vue2.0项目中使用Cesium

发布时间:2021-03-11 17:11:37 来源:亿速云 阅读:1411 作者:Leah 栏目:web开发

今天就跟大家聊聊有关如何在vue2.0项目中使用Cesium,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

安装cesium

在已有项目中执行,

npm i cesium

修改配置

build/webpack.base.conf.js

1、定义 Cesium 源码路径

const cesiumSource = '../node_modules/cesium/Source' 'use strict' const path = require('path') const utils = require('./utils') const config = require('../config') const vueLoaderConfig = require('./vue-loader.conf') //--cesium--配置 const cesiumSource = '../node_modules/cesium/Source';

2、在output 里加入sourcePrefix: ' ' 让webpack 正确处理多行字符串

3、配置 amd参数

4、module中在rules后添加 unknownContextCritical: false,

module.exports = {   context: path.resolve(__dirname, '../'),   entry: {     app: ["babel-polyfill", './src/main.js']   },   output: {     path: config.build.assetsRoot,     filename: '[name].js',     publicPath: process.env.NODE_ENV === 'production' ?       config.build.assetsPublicPath : config.dev.assetsPublicPath,     //--cesium--配置------------------------------------     sourcePrefix: ' '   },   //--cesium--配置----------------------------------------   amd:{     toUrlUndefined: true   },   resolve: {     extensions: ['.js', '.vue', '.json'],     alias: {       'vue$': 'vue/dist/vue.esm.js',       '@': resolve('src'),       //--cesium--配置       'cesium': path.resolve(__dirname, cesiumSource)     }   },   module: {     rules: [     ...     ],     //--cesium--配置-------------------------------------     //unknownContextRegExp: /^.\/.*$/     unknownContextCritical: false,   } }

build/webpack.dev.conf.js

1、定义 Cesium 源码路径和Cesium Workers 路径

const cesiumSource = 'node_modules/cesium/Source' const cesiumWorkers = '../Build/Cesium/Workers'

(注意这里的 node_modules 与webpack.base.conf.js的不同,前面没有../)

2、定义CESIUM_BASE_URL变量

3、在plugins 中加入下面插件,拷贝静态资源

plugins: [   new webpack.DefinePlugin({    'process.env': require('../config/dev.env'),    //--cesium--配置-------------------------------------------    'CESIUM_BASE_URL': JSON.stringify('')    }),   new webpack.HotModuleReplacementPlugin(),   new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.   new webpack.NoEmitOnErrorsPlugin(),   // https://github.com/ampedandwired/html-webpack-plugin   new HtmlWebpackPlugin({    filename: 'index.html',    template: 'index.html',    inject: true   }),   //--cesium--配置---------------------------------------------   new CopyWebpackPlugin([ { from: path.join(cesiumSource, cesiumWorkers), to: 'Workers' } ]),   //flag   new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'Assets'), to: 'Assets' } ]),   new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' } ]),   new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' } ]),   new CopyWebpackPlugin([ { from: 'ThirdParty', to: 'ThirdParty' } ]),   // copy custom static assets   new CopyWebpackPlugin([    {     from: path.resolve(__dirname, '../static'),     to: config.dev.assetsSubDirectory,     ignore: ['.*']    }   ])  ]

build/webpack.prod.conf.js

1、定义

 const cesiumSource = 'node_modules/cesium/Source';  const cesiumWorkers = '../Build/Cesium/Workers';

2、定义'CESIUM_BASE_URL'变量

3、在plugins 中加入下面插件,拷贝静态资源

plugins: [   // http://vuejs.github.io/vue-loader/en/workflow/production.html   new webpack.DefinePlugin({    'process.env': env,    //--cesium--配置--------------------------------------    'CESIUM_BASE_URL': JSON.stringify('static')   }),   ...   new HtmlWebpackPlugin({     ...   },   //--cesium--配置--------------------------------------   new CopyWebpackPlugin([ { from: path.join(cesiumSource, cesiumWorkers), to: 'static/Workers' } ]),//flag   new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'Assets'), to: 'static/Assets' } ]),   new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'Widgets'), to: 'static/Widgets' } ]),   new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' } ]),   new CopyWebpackPlugin([ { from: 'ThirdParty', to: 'ThirdParty' } ]),   ...

看完上述内容,你们对如何在vue2.0项目中使用Cesium有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI