bower install 是不是需要在与 bower.json 相同的文件夹中运行?
Posted
技术标签:
【中文标题】bower install 是不是需要在与 bower.json 相同的文件夹中运行?【英文标题】:Does bower install need to be run in the same folder as bower.json?bower install 是否需要在与 bower.json 相同的文件夹中运行? 【发布时间】:2016-01-19 20:22:41 【问题描述】:我正在使用 express 生成器 https://github.com/expressjs/generator 并将 angular 种子项目 https://github.com/angular/angular-seed 混合到其中,为平均堆栈应用程序创建一个轻量级脚手架。
我希望能够运行npm start
来安装所有依赖项,包括前端的依赖项。问题是角度/前端相关文件不在根目录中,而是在“公共”子目录中。 我知道我可以创建一个运行bower install
的npm start
脚本,但我不知道如何使启动脚本进入公共子目录,然后运行bower install
。
我的问题是bower install
是尝试在子目录中查找 bower.json 文件还是在工作目录中查找 bower.json 文件后停止搜索? 如果是前者,然后我可以运行bower install
,而不必担心手动向下导航文件夹结构。
如果 bower install
不会在子目录中搜索 bower.json,我如何将此命令包含在 npm start
脚本中?该命令似乎必须将目录更改为“公共”子目录,然后运行bower install
。
最后,这对我来说主要是一个部署问题。我正在使用 heroku,它在部署时会自动运行npm install
,并在检测到 package.json 文件存在时启动脚本。因此,我似乎需要将 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 依赖项,然后启动您的节点应用程序。
希望这会有所帮助!
【讨论】:
非常感谢您提供的非常有帮助的答案。这适用于heroku,对吗?这是构建节点项目的常用方法吗? 是的!这样做完全没问题——很多地方都会这样做。另外:如果这对您有用,您可能希望将此问题标记为已回答,以帮助其他有相同问题的人! 好的,我想它现在被标记为已回答。您只需单击该复选标记,它就会变为绿色,对吗?再次感谢。以上是关于bower install 是不是需要在与 bower.json 相同的文件夹中运行?的主要内容,如果未能解决你的问题,请参考以下文章
“EMALFORMED 无法读取 bower.json” “意外的令牌 /”
Logistics Regression & SVC:如果特征是 BOW、tf-idf 或 doc2Vec,我们是不是需要进行缩放?