bower install是否需要在与bower.json相同的文件夹中运行?

时间:2015-10-21 00:43:50

标签: angularjs node.js heroku bower bower-install

我正在使用快速生成器https://github.com/expressjs/generator并将角度种子项目https://github.com/angular/angular-seed混合到其中,以便为平均堆栈应用创建轻量级脚手架。

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

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

如果bower install不会在子目录中搜索bower.json,我怎么能将此命令作为bower install脚本的一部分包含在内?看来该命令必须将目录更改为“公共”子目录,然后运行npm start

最后,这主要是我的部署问题。我正在使用heroku,在部署时,会在检测到package.json文件存在时自动运行bower install和启动脚本。所以我似乎需要在开始脚本中包含include npm install

1 个答案:

答案 0 :(得分: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依赖项,然后启动您的节点应用程序。

希望这有帮助!