Reputation: 2404
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
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
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
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
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