【可以看我的博客里另外一篇----- import引入 ,可以不用script引入】
地址:https://www.cnblogs.com/reround/p/12020661.html
最近做項目要用到cesium,然后參照網上的一些步驟,最后發現報錯了,其中有兩種錯比較多:
① This dependency was not found: * cesium/Cesium in ./src/main.js. To install it, you can run: npm install --save cesium/Cesium
② prototype ‘Viewer’ undefined
然后就各種查閱各種調試,終於弄好了,現在來跟大家分享一下。
①鼠標右鍵桌面,打開Git Bash Here
②安裝vue-cli
npm install vue-cli -g
③建立一個基於webpack的vue項目
vue init webpack drafting(drafting為項目名稱,不能用中文)
④進入在桌面已創建好的 drafting 文件,啟動項目
cd drafting =========》 npm run dev
此時就建立了一個基礎的vue項目
⑤安裝cesium.js
npm install cesium --save
⑥修改cesium的webpack配置
1.修改build/webpack.base.conf.js文件
1.1 添加1行代碼:
const cesiumSource = '../node_modules/cesium/Source'
1.2 添加modules.exports的內容
在modules.exports模塊中添加
amd: {
toUrlUndefined: true },
再在modules.exports模塊中的output里添加
sourcePrefix: ' '
最后在modules.exports模塊中的resolve里的alisa里添加
'cesium': path.resolve(__dirname, cesiumSource) 注: __dirname 是兩個小下划線
1.3 在module模塊中加入
unknownContextCritical: false
2.修改 build/webpack.dev.conf.js 文件
2.1 添加2行代碼
const cesiumSource = 'node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers'
2.2 在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 webpack.DefinePlugin({ CESIUM_BASE_URL: JSON.stringify('') })
3.修改build/webpack.prod.conf.js 文件
3.1添加2行代碼
const cesiumSource = 'node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers'
3.2 在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 webpack.DefinePlugin({ CESIUM_BASE_URL: JSON.stringify('./') })
4.修改config/index.js 文件
4.1 將 assetsPublicPath的值設置為空
assetsPublicPath: '',
=============================================(重點來了)======================================================
一般都是做到這一步,然后就在mainjs里面導入 cesium 導入樣式 然后初始化 但是這樣報錯就來了,那我們應該怎么做呢?
首先到 node_modules/cesium/Build/Cesium 文件,可以看到里面還有四個文件夾和Cesiumjs
直接復制Cesium文件夾 粘貼到 根目錄的 static文件夾里
mainjs中不需要手動導入任何文件,默認就好,然后打開index.html,用script標簽去引入cesiumjs
最后我們去到HelloWorld.vue( 如果像我一樣測試的話可以不用改名,在實際項目中一定要改名字,改了組件的名字不要忘了也要修改路由里的名字 )文件里
記得這個地方還要引入css,不然樣式會錯亂的。保存一下,啟動項目,打開瀏覽器(如果配置正確了,8080端口沒有被占用,一般都是localhost:8080)也可以在config/index.js 里修改port端口號
打開網頁后:
這里面一些小空間很煩人,如果你不需要可以去掉,在初始化中配置:
這些具體某個是干嘛用的 ,大家可以查閱一下,有這方面的文檔)
去掉后:
(這默認打開的是美洲的視角,如果我們想一進來就把視角放在中國呢)
加完之后 ,刷新頁面,你看到的就是這樣了: