bower安装是否需要与bower.json运行在同一个文件夹中?
我使用快递生成器https://github.com/expressjs/generator,并混合angular种子项目https://github.com/angular/angular-seed到它创build一个平均堆栈应用程序的轻量级脚手架。
我想能够运行npm start
来安装包括前端的所有依赖项。 问题是angular度/前端相关的文件不在根目录中,而是在“公共”子目录中。 我知道我可以创build一个运行bower install
的npm 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开始运行。
希望这可以帮助!