最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

vue2.0项目集成Cesium的实现方法

来源:动视网 责编:小采 时间:2020-11-27 21:53:08
文档

vue2.0项目集成Cesium的实现方法

vue2.0项目集成Cesium的实现方法:安装cesium 在已有项目中执行, npm i cesium 修改配置 build/webpack.base.conf.js 1、定义 Cesium 源码路径 const cesiumSource = '../node_modules/cesium/Source' 'use strict' const path = req
推荐度:
导读vue2.0项目集成Cesium的实现方法:安装cesium 在已有项目中执行, npm i cesium 修改配置 build/webpack.base.conf.js 1、定义 Cesium 源码路径 const cesiumSource = '../node_modules/cesium/Source' 'use strict' const path = req


安装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' } ]),
 ...

ThirdParty

在项目根目录新建文件夹ThirdParty,放入draco_decoder.wasm文件,在加载gltf模型文件需要用到

文档

vue2.0项目集成Cesium的实现方法

vue2.0项目集成Cesium的实现方法:安装cesium 在已有项目中执行, npm i cesium 修改配置 build/webpack.base.conf.js 1、定义 Cesium 源码路径 const cesiumSource = '../node_modules/cesium/Source' 'use strict' const path = req
推荐度:
标签: VUE 项目 cesium
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top