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

标签 angularjs node.js heroku bower bower-install

我正在使用 express 生成器 https://github.com/expressjs/generator并混合 Angular 种子项目https://github.com/angular/angular-seed为平均堆栈应用程序创建一个轻量级脚手架。

我希望能够运行 npm start 来安装所有依赖项,包括前端依赖项。问题在于,与 Angular/前端相关的文件不在根目录中,而是在“public”子目录中。 我知道我可以创建一个运行 bower installnpm start 脚本,但我不知道如何使启动脚本下降到公共(public)子目录中,然后运行 ​​bower install

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

如果 bower install 不会在子目录中搜索 Bower.json,我如何将此命令包含在 npm start 脚本中?看来该命令必须将目录更改为“public”子目录,然后运行bower install

最后,这对我来说主要是一个部署问题。我正在使用 heroku,它在部署时会在检测到 package.json 文件存在时自动运行 npm install 和启动脚本。所以看来我需要包含 bower install 作为启动脚本的一部分。

最佳答案

回答您的问题: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 依赖项,然后启动您的 Node 应用程序。

希望这有帮助!

关于angularjs - Bower install 是否需要在与 Bower.json 相同的文件夹中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33249128/

相关文章:

angularjs - 使用 webpack、angular fullstack 生成器注入(inject) ngMaterial

javascript - sqlite 选择的数据没有显示给 ng-repeat

node.js - Mongoose 在更新架构声明后不会更新新字段

javascript - 对如何编写 OO Javascript 来实现简单的类模式感到困惑

php - Heroku WordPress : mysql extension missing after update

javascript - 通过 JavaScript 使用 Twilio API 进行调用

javascript - 当用户离开页面时在 angularjs 中显示自定义确认框

javascript - AngularJS/IonicFramework 阻止切换时的多个 API 调用

arrays - 为什么 Go 的 strings.Fields(str) 和 strings.Split(str, "") 这么慢?

node.js - Coffeescript --watch 开关不适用于 Node 0.4.7