bower安装是否需要与bower.json运行在同一个文件夹中?

我使用快递生成器https://github.com/expressjs/generator,并混合angular种子项目https://github.com/angular/angular-seed到它创build一个平均堆栈应用程序的轻量级脚手架。

我想能够运行npm start来安装包括前端的所有依赖项。 问题是angular度/前端相关的文件不在根目录中,而是在“公共”子目录中。 我知道我可以创build一个运行bower installnpm start脚本,但是我不知道如何让启动脚本进入公共子目录,然后运行bower install

我的问题是bower install试图在子目录中查找bower.json文件,还是在工作目录中查找bower.json文件后停止search? 如果前者,那么我可以运行bower install而不必担心手动导航文件夹结构。

如果bower install不会在子目录中searchbower.json,那么我怎样才能将这个命令作为npm start脚本的一部分? 这似乎命令将不得不改变目录到“公共”子目录,然后运行bower install

最后,这对我来说主要是一个部署问题。 我使用的是部署时自动运行npm install和启动脚本的heroku,当它检测到package.json文件的存在。 所以,我似乎需要包括包括bower install作为启动脚本的一部分。

回答你的问题: 是的bower install必须从您的bower.json文件所在的目录运行。

但是,你可以肯定地创build一个npm start脚本来完成这个任务。 这很容易! npm脚本只不过是逐字执行的shell命令罢了。

所以,假设你有一个如下所示的项目:

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

你基本上可以创build一个如下所示的npm start脚本:

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

这将确保在npm start时,先安装你的bower依赖项,然后你的node app开始运行。

希望这可以帮助!