這個專案的主要想法是提供一種簡單的方法來啟動新項目,在伺服器端使用 .Net Core WebAPI,在客戶端使用 VueJs。為了實現這一目標,我們設定了主要配置,以使用一些實用程式(如熱重載)和一些前端程式庫(如 Element-UI 和 FontAwesome)來實現此整合。
我們的目標是提供一個簡單的 SPA,最大限度地減少依賴性和效能問題。 VueJs 配置了 Vuex 和 Vue Router,但如果您覺得它不符合您的要求,可以將其刪除。元件庫也是如此。在此範本中,我們還提供了具有主要功能的範例。
此範本的靈感來自於 Mark Pieszak 的專案和 Nordes 的專案。
* 工作正在進行中。在未來版本中可用。
要下載並安裝模板,只需鍵入:
> dotnet new -i aspdotnet-vuejs
您可以使用
dotnet new -l
命令查看已安裝模板的清單。
然後要建立項目,您只需在目錄中使用以下命令:
> dotnet new vue
這將自動運行dotnet restore
。但可以在模板配置中更改它。使用上一個指令之前,請參閱dotnet new vue -h
。
解決方案和項目名稱將是目錄的名稱。
要更新您的安裝,您只需重複安裝過程即可。只要版本號不相等,就不會有任何意外的行為。
從 shell 中鍵入以下命令:
> dotnet new -u aspdotnet-vuejs
要開始開發應用程序,只需使用 .Net CLI 命令:
> dotnet run YourAplication.csproj
您只需在專案目錄中鍵入
dotnet run
或設定您的 IDE 來運作即可。在最後一種情況下,請不要忘記傳遞ASPNETCORE_ENVIRONMENT=Development
環境變數。
這也將運行所有節點依賴項,例如npm i
。
該應用程式將以開發模式啟動,並在
https://localhost:5001
和http://localhost:5000
啟用熱重載。
在開始該過程之前,您需要確保您的 wwwroot為空。
只需使用 .Net Core CLI 進行正常的發布方式即可
> dotnet publish YourProject.csproj -c release -o ./publish/
您也可以從 dotnet cli 新增所有其他參數。請造訪 MSDN 網站以了解更多資訊。
這將重建您的項目,然後它將使用特殊目標在生產模式下重建您的客戶端(vuejs)。
如果您在 NginX 伺服器後面進行發布,則可能需要更多設定。
假設您有基本網站http://www.example.com
並且在 NginX 設定中您希望將 dotnet 應用程式包含在http://www.example.com/myApp
中。在這種情況下,您需要為index.html 設定基本uri。您無需在開發和生產之間手動執行此操作,而是擁有包含可能覆蓋的檔案./build/base.prod.config.js
。
只需像下面這樣設定您的覆蓋:
module . exports = {
baseUriPath : '/myApp/'
}
當您下次發佈時,將考慮該路徑並自動設定基本 uri 路徑。
該專案已經透過 Docker Hub 添加了一些可用的 docker 容器。如果需要,您可以拉取圖像。它將在本地提供範例。該圖像使用 Alpine 版本,因此僅佔用很小的空間。
由於 docker 中的容器非常流行,因此在模板根資料夾中也包含Dockerfile
。不要忘記.dockerignore
,其中一些文件被忽略,以避免在發布之前複製一些不需要的文件。
確保您已安裝 Docker。
該程式碼在 HTTP 上內建了 Gzip 壓縮。最好使用該程式碼,特別是如果您使用 Kestrel。否則,如果您使用 IIS,請刪除Startup.cs
中找到的特定程式碼。通常,IIS 提供自己的壓縮模組,該模組的效能更高。
關於./ClientApp/components/**/*中可用的Components
有一些自動化。所有以關鍵字base
開頭的文件都將被聲明為全域文件,並且在任何地方使用的元件名稱將以蛇形命名法定義,而無需使用base
關鍵字。
範例: baseHelloWorld
將註冊為hello-world
,您將能夠在 Vue 範本中使用它。
< template >
< div >
< hello-world /> works!
</ div >
</ template >
專案中每個頁面的卡片組件都有一個真實的範例。元件的名稱是
baseCard.vue
。
當您處於開發模式時,不會產生 css。只有當您使用dotnet publish
命令時才會建立它們,或者作為替代方案,您也可以輸入npm run build -- --prod
這將啟動生產建置並縮小和提取檔案。
重要提示:目前,webpack 會清理 .Net 專案中的整個 wwwroot 資料夾。因此,如果您有靜態文件,請將它們移至./ClientApp/static/資料夾中。
為了幫助加快開發速度,我們提供了元件庫Element-UI的安裝。該庫的文檔可以在他的網站上找到。
如果不需要,可以在
main.js
中正常刪除它。