Bower is a dependency management tool for client-side web packages. Each package can specify its production dependencies and its development-only dependencies by name and semver version expression. Package dependencies are specified in a
bower.json file. Bower, when asked to install dependencies, looks for dependencies of the project and for dependencies of dependencies all the way down, unifies version constraints and then installs all dependencies from all levels of the hierarchy in flat manner (side-by-side) into directory
bowerused in Amber?
Amber itself is a client-side web package, so Amber itself is a bower package and uses bower to manage its own client-side dependencies (jQuery and others).
An Amber web project (a client-side web project that uses Amber) is encouraged to use bower to manage its dependencies as well, listing Amber itself as one of them. Default projects (the ones created by
amber init) do just that.
Gruntfile.js. This defines tasks to be done and binds them together, similarly to what a
Makefile does for the
make build system in UNIX. Grunt is installed through the npm package manager and must be installed in three parts:
grunt- the runtime, installed as development dependency of the project,
grunt-xxx-yyy- modules with reusable tasks, also as development dependency of the project, and
grunt-cli, the CLI command that drives the runtime using
Gruntfile.js, which should be installed globally.
gruntused in Amber?
Amber itself and default Amber projects (the ones created by
amber init) both contain
Gruntfile.js and they include
Grunt-init is a create-project-from-a-template tool, spawned from
grunt to be a standalone tool. It defines an API. The templates themselves are created as isolated
npm packages, which the
grunt-init CLI command can use. In template modules, you define the skeleton of the project, a set of questions to ask when the project is created and the way they are included in the skeleton. The result is, by running
grunt-init with a specific template, you answer a few questions, and a project is created for you base on the answers.
grunt-initused in Amber?
It is used internally as first part of
amber init. It uses the
nodeused in Amber?
Nearly everywhere, except the case of Amber itself or an Amber project running in the browser. All the tools mentioned in this page run in
amber-cli package in
npm) itself -
amber command as a general tool and
amber-dev package in npm. And last but not least, you can compile Amber package(s) and bundle them into CLI executable for
node - which is now
amber tool itself is created.
node). Each package can specify its production dependencies and its development-only dependencies by name and semver version expression. Package dependencies are specified in a
package.json file. When asked to install dependencies,
npm looks for dependencies of the project and installs them into the directory
node_modules, while doing the same for the dependencies itself, the result being a deep tree of dependencies - this way the same module could appear several times (even hundreds of times), but always as a local dependency of its parent - this way, version clashes are avoided.
npmused in Amber?
npm is used to install all the tools mentioned here (except
node and itself), and it is also used to install Amber CLI tool from the
amber-cli package. Second, Amber itself and Amber projects contain
package.json files which list the development dependencies needed for the supporting tooling to work (
amber-dev and others). Third,
amber itself is a
npm package, for server-side projects that want to use it from
node, not from browser.