今天就跟大家聊聊有关如何在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有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。