2015-10-21 76 views
1

我正在使用快遞生成器https://github.com/expressjs/generator並將角種子項目https://github.com/angular/angular-seed混合到其中,以便爲平均堆棧應用創建輕量級腳手架。bower安裝是否需要與bower.json運行在相同的文件夾中?

我希望能夠運行npm start來安裝所有依賴項,包括前端項。問題是角度/前端相關文件不在根目錄中,而是在「公共」子目錄中。 我知道我可以創建一個運行bower installnpm start腳本,但我不知道如何使啓動腳本進入公共子目錄,然後運行bower install

我的問題是bower install嘗試在子目錄中找到bower.json文件,還是在尋找工作目錄中的bower.json文件後停止搜索?如果前者,那麼我可以運行bower install而不必擔心手動導航文件夾結構。

如果bower install不會在子目錄中搜索bower.json,那麼如何將此命令作爲npm start腳本的一部分包含在內?看來命令將不得不將目錄切換到「公共」子目錄,然後運行bower install

最後,這對我來說主要是一個部署問題。我使用的是heroku,在部署時,它會在檢測到package.json文件存在時自動運行npm install和啓動腳本。所以看起來我需要包含bower install作爲啓動腳本的一部分。

回答

1

要回答你的問題:是的bower install必須從您的bower.json文件所在的目錄運行。

但是,您絕對可以創建一個npm start腳本來執行此操作。這很容易! npm腳本只不過是逐字執行的shell命令。

所以,讓我們說你有一個項目看起來像這樣:

myapp 
├── app.js 
├── package.json 
└── public 
    └── bower.json 

你基本上可以創建一個npm start腳本,看起來像這樣:

// ... 
"start": "cd public && bower install && cd .. && node app.js" 
// ... 

這將確保當運行npm start,先安裝您的bower依賴項,然後開始您的節點應用程序。

希望這會有所幫助!

+0

非常感謝非常有幫助的答案。這將與heroku正常工作嗎?這是構建節點項目的常用方法嗎? – DC3314

+0

是啊!這樣做很好 - 很多地方都可以做到這一點。另外:如果這是爲雅,你可能想標記這個問題作爲回答,以幫助其他人有同樣的問題! – rdegges

+0

好的,我認爲它現在被標記爲已回答。你只需點擊該複選標記,它會變成綠色的權利?再次感謝。 – DC3314

相關問題