安装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模型文件需要用到
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
© 版权声明
THE END
暂无评论内容