Dominic P
Dominic P

Reputation: 2404

Installing Node Grunt Locally

I'm in the process of reworking my build system, and I've read that node.js with grunt is a good way to go. I've never used either, and I'm having a bit of trouble.

The problem is that I want to set up a portable build environment that I can include in the version control for my project (maybe this isn't possible). Getting node.js and npm working has been no trouble. But, every instruction I see for installing grunt says to use the -g flag with npm which installs it globally. Since I want a totally portable environment, I have attempted to leave this off, but I can't get grunt to work.

Am I missing something, or is what I'm attempting to do not feasible?

Upvotes: 17

Views: 37205

Answers (4)

Sarabjit Singh
Sarabjit Singh

Reputation: 103

Here is the command line code that will install the latest version of Grunt in your project folder, adding it to your devDependencies:

npm install grunt --save-dev

The same can be done for gruntplugins and other node modules. As seen in the following example installing the JSHint task module:

npm install grunt-contrib-jshint --save-dev

Checkout the current available gruntplugins to be installed and used on your project at the plugins page.

Be sure to commit the updated package.json file with your project when you're done!

Upvotes: 1

tomajar
tomajar

Reputation: 419

You can use local grunt without global (-g) installation of a grunt-cli by calling:

node node_modules/grunt-cli/bin/grunt --version

Of course first you need install it in you project locally and have a grunt version greater than 0.3; for example:

npm install grunt-cli
npm install [email protected]

Or add them both to your packages.json and call

npm install  

This should also help when you just can't install any package globally as I've described in https://stackoverflow.com/a/39046355/2201879

Upvotes: 19

splintor
splintor

Reputation: 10154

See https://www.npmjs.com/package/grunt-cli#installing-grunt-cli-locally:

Installing grunt-cli locally

If you prefer the idiomatic Node.js method to get started with a project (npm install && npm test) then install grunt-cli locally with npm install grunt-cli --save-dev. Then add a script to your package.json to run the associated grunt command: "scripts": { "test": "grunt test" }. Now npm test will use the locally installed ./node_modules/.bin/grunt executable to run your Grunt commands.

To read more about npm scripts, please visit the npm docs:
https://docs.npmjs.com/misc/scripts.

Upvotes: 2

Ruben Vermeersch
Ruben Vermeersch

Reputation: 1943

Have a look at http://gruntjs.com/getting-started

Grunt has recently been split into a project-local dependency (grunt) and a command-line launcher (grunt-cli). It's the latter that should be installed globally.

As an extra hint on ensuring that you can take your builds everywhere: make sure you save all dependencies in package.json, by using the --save and --save-dev parameters when using npm install. More info: https://npmjs.org/doc/install.html

Upvotes: 23

Related Questions