2013-06-05 74 views
3

我有一個node.js項目,當我啓動應用程序時編譯較少的文件到CSS。我這樣做,通過修改start腳本package.json像這樣:在Windows Azure上的node.js項目中編譯較少的文件

{ 
    // omitted for brevity 
    start: { lessc public/stylesheets/styles.less > public/stylesheets/styles.css; node app.js; } 
} 

這工作得很好本地,但不是在所有在我的Windows Azure實例。要麼是因爲需要在計算機上全局安裝此功能才能工作,要麼因爲Azure不運行npm start。或兩者。無論哪種方式,我需要另一種解決方案!

我以爲custom deployments是答案(我用的git遠程部署),我試圖修改deploy.cmd包括

call "lessc public/stylesheets/styles.less > public/stylesheets/styles.css;" 

沒有喜悅。我甚至試過

call "%SITE_ROOT%/node_modules/less/bin/lessc %SITE_ROOT%/public/stylesheets/styles.less > %SITE_ROOT%/public/stylesheets/styles.css; 

我是以這種錯誤的方式來?如何將編譯的css文件保存在我的源代碼管理中,並在部署到Azure之後在服務器上進行編譯?

謝謝!

回答

1

好的,我終於有這個想法了。由於某些原因,即使物理文件在磁盤上(我可以通過我的FTP客戶端看到它們),Azure不會讓我在\node_modules\less\bin文件夾中運行lessc,但它確實允許我在\node_modules\.bin文件夾。

最後,我將下面幾行添加到了我的deploy.cmd文件中,它工作正常!

IF NOT DEFINED LESS_COMPILER (
    SET LESS_COMPILER=%DEPLOYMENT_TARGET%\node_modules\.bin\lessc 
) 

call %LESS_COMPILER% %DEPLOYMENT_TARGET%\public\stylesheets\styles.less > %DEPLOYMENT_TARGET%\public\stylesheets\styles.css 
+0

它是如何與您的第一次嘗試失敗? –

+0

@DavidEbbo我不能確定,但​​我認爲引號很重要 - 我記得看到「行太長」(或類似的措辭?);並且當LESS_COMPILER被設置爲/ node_modules/less/bin文件夾時,它根本沒有找到lessc - 由於「lessc不是可執行文件」 – kiwipom

相關問題