我正在使用快速生成器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
。
答案 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依赖项,然后启动您的节点应用程序。
希望这有帮助!