vue-cli3+cesium npm引入和官网静态引入

2 篇文章 0 订阅

方法一:

首先创建好vue-cli3的项目,这个就不用说了。

然后运行 npm install --save cesium安装cesium

配置vue.config.js

const CopyWebpackPlugin = require('copy-webpack-plugin')
const webpack = require('webpack')
const path = require('path')

const debug = process.env.NODE_ENV !== 'production'
let cesiumSource = './node_modules/cesium/Source'
let cesiumWorkers = '../Build/Cesium/Workers'
module.exports = {
    publicPath: '',
    devServer: {
        port: 8888
    },
    configureWebpack: {
        output: {
            sourcePrefix: ' '
        },
        amd: {
            toUrlUndefined: true
        },
        resolve: {
            alias: {
                'vue$': 'vue/dist/vue.esm.js',
                '@': path.resolve('src'),
                'components': path.resolve('src/components'),
                'assets': path.resolve('src/assets'),
                'views': path.resolve('src/views'),
                'cesium': path.resolve(__dirname, cesiumSource)
            }
        },
        plugins: [
            new CopyWebpackPlugin([ { from: path.join(cesiumSource, cesiumWorkers), to: 'Workers'}]),
            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 webpack.DefinePlugin({
                CESIUM_BASE_URL: JSON.stringify('./')
            })
        ]
    }
}

main.js中插入,这里有两个方法一个是npm install 安装的引入(ps:不需要改cesium源码),另一种是在官网下载cesium包直接放入(ps:适用于项目需要修改源码):

//npm install cesium引入方法
// var Cesium = require('cesium/Cesium');
// var widgets= require('cesium/Widgets/widgets.css');

/**静态cesium包下载引入 */
var Cesium = require('./Cesium/Cesium.js');
var widgets= require('./Cesium/Widgets/widgets.css');
 
Vue.prototype.Cesium = Cesium
Vue.prototype.widgets = widgets

官网静态资源引入会有一个坑,运行项目时会提醒:

[BABEL] Note: The code generator has deoptimised the styling of "xxx.js" as it exceeds the max of "500KB".

解决这个方法就是在babel.config.js中添加 compact: false 可参考 http://www.imooc.com/wenda/detail/497480

修改helloword代码

<!--  -->
<template>
  <div id="cesiumContainer">

  </div>
</template>

<script>
export default {
  data () {
    return {
    };
  },

  components: {},

  computed: {},

  mounted () {
        var viewer = new Cesium.Viewer('cesiumContainer')
        console.log(viewer)
    },

  methods: {}
}

</script>
<style lang='less' scoped>
 #cesiumContainer {
        width: 100%;
        height: 100%;
        
    }
</style>

然后运行npm run dev

这时可能会报关于require的警告,这个是新版本不支持整体import,可以参考:https://blog.csdn.net/weizhixiang/article/details/104473856

我们只需要把helloword 中mounted的 var viewer = new Cesium.Viewer('cesiumContainer')改成

 var viewer = new this.Cesium.Viewer('cesiumContainer')

就可以运行了

方法二:将cesium的文件放入public文件中再index.html用script标签引入,记住不能将cesium放在assets中在引入会失败。

代码可参考https://github.com/GPBOB/vue-cesium

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值