vue cli4搭建cesium環境

搭建項目之前,請確認好你自己已經安裝過node, npm, vue cli。沒安裝的可以參考下面的鏈接安裝。

如何安裝node

如何安裝vue cli

1.進入一個目錄,開始創建
輸入:

vue create project-one

2.我們這裏選擇手動配置

按 ↓ 選擇“Manually select features”,再按 Enter

在這裏插入圖片描述
3.選擇你需要的配置項
通過↑ ↓ 箭頭選擇你要配置的項,按 空格 是選中,按 a 是全選,按 i 是反選。具體每個配置項表示什麼意思在下面會有說明。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
>( ) Babel //轉碼器,可以將ES6代碼轉爲ES5代碼,從而在現有環境執行。 
( ) TypeScript// TypeScript是一個JavaScript(後綴.js)的超集(後綴.ts)包含並擴展了 JavaScript 的語法,需要被編譯輸出爲 JavaScript在瀏覽器運行
( ) Progressive Web App (PWA) Support// 漸進式Web應用程序
( ) Router // vue-router(vue路由)
( ) Vuex // vuex(vue的狀態管理模式)
( ) CSS Pre-processors // CSS 預處理器(如:less、sass)
( ) Linter / Formatter // 代碼風格檢查和格式化(如:ESlint)
( ) Unit Testing // 單元測試(unit tests)
( ) E2E Testing // e2e(end to end) 測試

在這裏插入圖片描述
選完之後按 Enter。分別選擇每個對應功能的具體包。選你擅長的,沒有擅長的,就選使用廣的,哈哈,方便諮詢別人。

3.1 選擇是否使用history router

在這裏插入圖片描述

Vue-Router 利用了瀏覽器自身的hash 模式和 history 模式的特性來實現前端路由(通過調用瀏覽器提供的接口)。
我這裏建議選n。這樣打包出來丟到服務器上可以直接使用了,後期要用的話,也可以自己再開起來。
選yes的話需要服務器那邊再進行設置。
Use history mode for router? (Requires proper server setup for index fallback in production)

3.2 選擇css 預處理器

在這裏插入圖片描述
我選擇的是Sass/Scss(with dart-sass)

node-sass是自動編譯實時的,dart-sass需要保存後纔會生效。sass 官方目前主力推dart-sass 最新的特性都會在這個上面先實現。(該回答參考http://www.imooc.com/qadetail/318730

3.3 選擇Eslint代碼驗證規則
提供一個插件化的javascript代碼檢測工具,ESLint + Prettier //使用較多
在這裏插入圖片描述
3.4 選擇什麼時候進行代碼規則檢測
在這裏插入圖片描述

( ) Lint on save // 保存就檢測
( ) Lint and fix on commit // fix和commit時候檢查

3.5 選擇單元測試
在這裏插入圖片描述

> Mocha + Chai //mocha靈活,只提供簡單的測試結構,如果需要其他功能需要添加其他庫/插件完成。必須在全局環境中安裝
Jest //安裝配置簡單,容易上手。內置Istanbul,可以查看到測試覆蓋率,相較於Mocha:配置簡潔、測試代碼簡潔、易於和babel集成、內置豐富的expect

3.6 選擇如何存放配置
在這裏插入圖片描述

> In dedicated config files // 獨立文件放置
  In package.json // 放package.json裏

如果是選擇 獨立文件放置,項目會有單獨如下圖所示的幾件文件。
在這裏插入圖片描述
3.7 是否保存當前配置

在這裏插入圖片描述
鍵入N不記錄,如果鍵入Y需要輸入保存名字,如第2步所看到的我保存的名字爲test。

4.等待創建項目
在這裏插入圖片描述
5.執行它給出的命令,可以直接訪問了

在這裏插入圖片描述

6.安裝element-ui

在vue-cli@3之後,element爲vue-cli準備了相應的element插件,我們可以用這個插件快速的來安裝element-ui。只需要cd到工程根目錄,運行vue add element即可:

如果你已經用VSCode打開了項目 運行下面的命令可能會報下面這個錯

Vue 無法加載文件 X:\Xxx\XXX\node-v12.16.3-x64\node_global\vue.ps1,因爲在此係統上禁止運行腳

解決辦法

vue add element

等待插件下載:
在這裏插入圖片描述
爲了方便,選擇全部導入:
在這裏插入圖片描述
繼續選擇,最後回車:
在這裏插入圖片描述
安裝完成
在這裏插入圖片描述
可見,該插件自動幫我們更新了依賴,加入了element相關依賴,並自動幫我們在代碼中引入了element,十分的方便
注意:安裝結束後會讀取.svn或者.git裏的文件,如果訪問不到的話,會報一個operation not permitted的錯誤。我在有.svn文件夾的時候出現過這個錯誤,所以最好是安裝完element後,再做版本控制相關的操作。

測試element是否安裝成功

npm run serve

頁面上多出了el-button,表示element-ui安裝成功,自此項目框架就搭建完成了。

在這裏插入圖片描述
7.引入Cesium庫

進入到項目的文件夾,在此處打開cmd,輸入

npm install cesium -s

修改main.js 文件 在裏面添加

var Cesium = require('cesium/Cesium');
var widgets= require('cesium/Widgets/widgets.css');

Vue.prototype.Cesium = Cesium
Vue.prototype.widgets = widgets

引入完成後,在項目文件夾下新建文件:vue.config.js,文件內容爲:

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

let cesiumSource = './node_modules/cesium/Source'
let cesiumWorkers = '../Build/Cesium/Workers'

module.exports = {
  // 基本路徑  3.6之前的版本時 baseUrl
  publicPath: "./",
  // 輸出文件目錄
  outputDir: "dist",
  // eslint-loader 是否在保存的時候檢查
  lintOnSave: false,
  // webpack-dev-server 相關配置
  devServer: {
    open: process.platform === "darwin",
    host: "0.0.0.0",
    port: 5000,
    https: false,
    hotOnly: false
  },
  configureWebpack: {
    output: {
      sourcePrefix: ' '
    },
    amd: {
      toUrlUndefined: true
    },
    resolve: {
      alias: {
        'vue$': 'vue/dist/vue.esm.js',
        '@': path.resolve('src'),
        '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('./')
      })
    ],
    module: {
      unknownContextCritical: /^.\/.*$/,
      unknownContextCritical: false
    }
  }
};

在views文件夾下新建組件CesiumScene.vue,文件內容:


<template>
  <div id="container" class="box">
    <div id="cesiumContainer"></div>
  </div>
</template>
<script>

export default {
  name: 'cesiumPage',
  data () {
    return {
    }
  },
  mounted(){
    var Cesium = this.Cesium;
    var cesiumContainer = document.getElementById("cesiumContainer");
    var viewer = new Cesium.Viewer("cesiumContainer",{
      //加載在線谷歌地圖
      imageryProvider: new Cesium.UrlTemplateImageryProvider({
         url:"http://www.google.cn/maps/vt?lyrs=s&x={x}&y={y}&z={z}"
      })
    })
      //去除 版權圖標
      viewer._cesiumWidget._creditContainer.style.display="none";
  }
}
</script>
 
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
html,
body,
#cesiumContainer {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.box {
  height: 100%;
} 
</style>

修改App.vue文件內容如下:

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

<style lang="scss">
html,
body,
#app {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
  color: #000;
  overflow: hidden;
}
</style>

修改路由如下:

import Vue from 'vue'
import VueRouter from 'vue-router'
import CesiumScene from '../views/CesiumScene.vue'

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    name: 'scene',
    component: CesiumScene
  }
]

const router = new VueRouter({
  // mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

啓動項目

在項目文件夾下打開cmd,輸入

npm run serve

打開瀏覽器,輸入IP或localhost+端口號,即localhost:5000,查看結果
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章