2017-08-02 64 views
0

我有一個在Azure中託管的Web應用程序。從Azure Web應用程序(MVC 4)中的節點包導入JavaScript文件

它被配置爲從GitHub存儲庫自動構建和部署。

我使用的是我從nuget軟件包中安裝的angular.min.js版本,然後直接簽入。現在我想改變它,並且從npm而不是nuget合併JavaScript包。

我做了以下內容:

  • 增加了一個NPM配置文件
  • 添加依賴 「角」: 「^ 1.6.5」

以下是完整package.json文件:

{ 
    "version": "1.0.0", 
    "name: "asp.net", 
    "private": true, 
    "dependencies": { 
     "angular": "^1.6.5" 
    }, 
    "devDependencies": {} 
} 

然後,在我的剃鬚刀頁面中,我直接從node_modules文件夾:

<script type="text/javascript" src="~/node_modules/angular/angular.min.js"></script> 

這在我的本地機器上工作。 我把這個檢查到Github中,Azure框架構建並部署了我的代碼。但是,文件夾node_modules不存在下D:\home\site\wwwroot

我試着加了預生成步驟:

npm install 

但這並沒有解決問題。

使用kudu,我購買了Web服務器上的調試控制檯。我將位置設置爲文件夾D:\home\site\wwwroot,然後鍵入npm install。這工作:它創建並填充了node_modules文件夾,我的網站現在可以訪問角度文件。

因此,構建不會恢復軟件包,或者正在恢復軟件包,但不會將其部署到wwwroot文件夾。

有沒有一種正確的方法可以將節點包中的JavaScript文件包含在Azure上的ASP.NET MVC應用程序中?

回答

1

我按照this page上的說明添加了部署後步驟。

  • 在瀏覽器中,轉到https://<mywebappname>.scm.azurewebsites.net
  • 啓動調試控制檯\ PowerShell選項卡
  • 鑽取到文件夾 「d:\家\網站\部署\工具」
  • 創建一個文件夾「PostDeploymentActions 「
  • 在此文件夾中,添加一個PowerShell腳本post-deploy.ps1

這個PowerShell腳本的內容:

pushd d:\home\site\wwwroot 
npm install 
popd 

現在,節點包在每次部署時都安裝在Web服務器上。


在這個階段,我不知道這是否是最好的長期解決方案或不....

0

最佳做法是使用GitHub的連續部署時,我們建議使用自定義用於自定義部署過程的部署腳本。詳情請查詢this doc

相關問題