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 installnpm 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 相同的文件夹中运行?的主要内容,如果未能解决你的问题,请参考以下文章

你如何卸载所有的凉亭包?

为啥 Bower 本身显示 0 依赖性?

“EMALFORMED 无法读取 bower.json” “意外的令牌 /”

Logistics Regression & SVC:如果特征是 BOW、tf-idf 或 doc2Vec,我们是不是需要进行缩放?

bower install的时候报错

ubuntu使用bower install问题汇总