Ensure you have npm You need npm
to install gulp
.
If you've previously installed gulp... uninstall it now.
npm rm --global gulp
Which seems like an odd thing to do, in an aside... Looking through the history of gulp's getting started it looks like things have changed a bit over the years.
Running the above command resulted in this output for me:
- [email protected] node_modules\gulp\node_modules\ansi-regex
- [email protected] node_modules\gulp\node_modules\ansi-styles
- [email protected] node_modules\gulp\node_modules\archy
- [email protected] node_modules\gulp\node_modules\arr-flatten
- [email protected] node_modules\gulp\node_modules\arr-diff
- [email protected] node_modules\gulp\node_modules\array-differ
- [email protected] node_modules\gulp\node_modules\array-uniq
- [email protected] node_modules\gulp\node_modules\array-unique
- [email protected] node_modules\gulp\node_modules\balanced-match
- [email protected] node_modules\gulp\node_modules\beeper
- [email protected] node_modules\gulp\node_modules\buffer-shims
- [email protected] node_modules\gulp\node_modules\clone
- [email protected] node_modules\gulp\node_modules\clone-stats
- [email protected] node_modules\gulp\node_modules\concat-map
- [email protected] node_modules\gulp\node_modules\brace-expansion
- [email protected] node_modules\gulp\node_modules\core-util-is
- [email protected] node_modules\gulp\node_modules\dateformat
- [email protected] node_modules\gulp\node_modules\defaults
- [email protected] node_modules\gulp\node_modules\deprecated
- [email protected] node_modules\gulp\node_modules\escape-string-regexp
- [email protected] node_modules\gulp\node_modules\extend
- [email protected] node_modules\gulp\node_modules\filename-regex
- [email protected] node_modules\gulp\node_modules\find-index
- [email protected] node_modules\gulp\node_modules\first-chunk-stream
- [email protected] node_modules\gulp\node_modules\flagged-respawn
- [email protected] node_modules\gulp\node_modules\for-in
- [email protected] node_modules\gulp\node_modules\for-own
- [email protected] node_modules\gulp\node_modules\fs-exists-sync
- [email protected] node_modules\gulp\node_modules\detect-file
- [email protected] node_modules\gulp\node_modules\glob2base
- [email protected] node_modules\gulp\node_modules\globule\node_modules\graceful-fs
- [email protected] node_modules\gulp\node_modules\globule\node_modules\inherits
- [email protected] node_modules\gulp\node_modules\has-ansi
- [email protected] node_modules\gulp\node_modules\inherits
- [email protected] node_modules\gulp\node_modules\ini
- [email protected] node_modules\gulp\node_modules\interpret
- [email protected] node_modules\gulp\node_modules\is-buffer
- [email protected] node_modules\gulp\node_modules\is-dotfile
- [email protected] node_modules\gulp\node_modules\is-extendable
- [email protected] node_modules\gulp\node_modules\is-extglob
- [email protected] node_modules\gulp\node_modules\extglob
- [email protected] node_modules\gulp\node_modules\is-glob
- [email protected] node_modules\gulp\node_modules\glob-parent
- [email protected] node_modules\gulp\node_modules\glob-base
- [email protected] node_modules\gulp\node_modules\is-posix-bracket
- [email protected] node_modules\gulp\node_modules\expand-brackets
- [email protected] node_modules\gulp\node_modules\is-primitive
- [email protected] node_modules\gulp\node_modules\is-equal-shallow
- [email protected] node_modules\gulp\node_modules\is-utf8
- [email protected] node_modules\gulp\node_modules\is-windows
- [email protected] node_modules\gulp\node_modules\isarray
- [email protected] node_modules\gulp\node_modules\isexe
- [email protected] node_modules\gulp\node_modules\isobject\node_modules\isarray
- [email protected] node_modules\gulp\node_modules\isobject
- [email protected] node_modules\gulp\node_modules\kind-of
- [email protected] node_modules\gulp\node_modules\is-number
- [email protected] node_modules\gulp\node_modules\lodash
- [email protected] node_modules\gulp\node_modules\lodash._basecopy
- [email protected] node_modules\gulp\node_modules\lodash._basetostring
- [email protected] node_modules\gulp\node_modules\lodash._basevalues
- [email protected] node_modules\gulp\node_modules\lodash._getnative
- [email protected] node_modules\gulp\node_modules\lodash._isiterateecall
- [email protected] node_modules\gulp\node_modules\lodash._reescape
- [email protected] node_modules\gulp\node_modules\lodash._reevaluate
- [email protected] node_modules\gulp\node_modules\lodash._reinterpolate
- [email protected] node_modules\gulp\node_modules\lodash._root
- [email protected] node_modules\gulp\node_modules\lodash.assignwith
- [email protected] node_modules\gulp\node_modules\lodash.escape
- [email protected] node_modules\gulp\node_modules\lodash.isarguments
- [email protected] node_modules\gulp\node_modules\lodash.isarray
- [email protected] node_modules\gulp\node_modules\lodash.isempty
- [email protected] node_modules\gulp\node_modules\lodash.isplainobject
- [email protected] node_modules\gulp\node_modules\lodash.isstring
- [email protected] node_modules\gulp\node_modules\lodash.keys
- [email protected] node_modules\gulp\node_modules\lodash.mapvalues
- [email protected] node_modules\gulp\node_modules\lodash.pick
- [email protected] node_modules\gulp\node_modules\lodash.restparam
- [email protected] node_modules\gulp\node_modules\lodash.templatesettings
- [email protected] node_modules\gulp\node_modules\lodash.template
- [email protected] node_modules\gulp\node_modules\lru-cache
- [email protected] node_modules\gulp\node_modules\map-cache
- [email protected] node_modules\gulp\node_modules\minimatch
- [email protected] node_modules\gulp\node_modules\minimist
- [email protected] node_modules\gulp\node_modules\mkdirp\node_modules\minimist
- [email protected] node_modules\gulp\node_modules\mkdirp
- [email protected] node_modules\gulp\node_modules\natives
- [email protected] node_modules\gulp\node_modules\graceful-fs
- [email protected] node_modules\gulp\node_modules\normalize-path
- [email protected] node_modules\gulp\node_modules\object-assign
- [email protected] node_modules\gulp\node_modules\object.omit
- [email protected] node_modules\gulp\node_modules\ordered-read-streams
- [email protected] node_modules\gulp\node_modules\os-homedir
- [email protected] node_modules\gulp\node_modules\expand-tilde
- [email protected] node_modules\gulp\node_modules\parse-glob
- [email protected] node_modules\gulp\node_modules\parse-passwd
- [email protected] node_modules\gulp\node_modules\homedir-polyfill
- [email protected] node_modules\gulp\node_modules\path-root-regex
- [email protected] node_modules\gulp\node_modules\path-root
- [email protected] node_modules\gulp\node_modules\preserve
- [email protected] node_modules\gulp\node_modules\pretty-hrtime
- [email protected] node_modules\gulp\node_modules\process-nextick-args
- [email protected] node_modules\gulp\node_modules\randomatic
- [email protected] node_modules\gulp\node_modules\regex-cache
- [email protected] node_modules\gulp\node_modules\repeat-element
- [email protected] node_modules\gulp\node_modules\repeat-string
- [email protected] node_modules\gulp\node_modules\fill-range
- [email protected] node_modules\gulp\node_modules\expand-range
- [email protected] node_modules\gulp\node_modules\braces
- [email protected] node_modules\gulp\node_modules\micromatch
- [email protected] node_modules\gulp\node_modules\replace-ext
- [email protected] node_modules\gulp\node_modules\resolve
- [email protected] node_modules\gulp\node_modules\rechoir
- [email protected] node_modules\gulp\node_modules\semver
- [email protected] node_modules\gulp\node_modules\sequencify
- [email protected] node_modules\gulp\node_modules\sigmund
- [email protected] node_modules\gulp\node_modules\globule\node_modules\minimatch
- [email protected] node_modules\gulp\node_modules\globule\node_modules\glob
- [email protected] node_modules\gulp\node_modules\globule
- [email protected] node_modules\gulp\node_modules\gaze
- [email protected] node_modules\gulp\node_modules\glob-watcher
- [email protected] node_modules\gulp\node_modules\sparkles
- [email protected] node_modules\gulp\node_modules\has-gulplog
- [email protected] node_modules\gulp\node_modules\glogg
- [email protected] node_modules\gulp\node_modules\gulplog
- [email protected] node_modules\gulp\node_modules\stream-consume
- [email protected] node_modules\gulp\node_modules\string_decoder
- [email protected] node_modules\gulp\node_modules\readable-stream
- [email protected] node_modules\gulp\node_modules\duplexer2
- [email protected] node_modules\gulp\node_modules\multipipe
- [email protected] node_modules\gulp\node_modules\glob-stream\node_modules\readable-stream
- [email protected] node_modules\gulp\node_modules\strip-ansi
- [email protected] node_modules\gulp\node_modules\strip-bom
- [email protected] node_modules\gulp\node_modules\supports-color
- [email protected] node_modules\gulp\node_modules\chalk
- [email protected] node_modules\gulp\node_modules\through2\node_modules\isarray
- [email protected] node_modules\gulp\node_modules\tildify
- [email protected] node_modules\gulp\node_modules\time-stamp
- [email protected] node_modules\gulp\node_modules\fancy-log
- [email protected] node_modules\gulp\node_modules\unc-path-regex
- [email protected] node_modules\gulp\node_modules\is-unc-path
- [email protected] node_modules\gulp\node_modules\is-relative
- [email protected] node_modules\gulp\node_modules\is-absolute
- [email protected] node_modules\gulp\node_modules\parse-filepath
- [email protected] node_modules\gulp\node_modules\fined
- [email protected] node_modules\gulp\node_modules\unique-stream
- [email protected] node_modules\gulp\node_modules\user-home
- [email protected] node_modules\gulp\node_modules\util-deprecate
- [email protected] node_modules\gulp\node_modules\through2\node_modules\readable-stream
- [email protected] node_modules\gulp\node_modules\v8flags
- [email protected] node_modules\gulp\node_modules\vinyl
- [email protected] node_modules\gulp\node_modules\vinyl-fs\node_modules\clone
- [email protected] node_modules\gulp\node_modules\vinyl-fs\node_modules\readable-stream
- [email protected] node_modules\gulp\node_modules\vinyl-fs\node_modules\vinyl
- [email protected] node_modules\gulp\node_modules\which
- [email protected] node_modules\gulp\node_modules\global-prefix
- [email protected] node_modules\gulp\node_modules\global-modules
- [email protected] node_modules\gulp\node_modules\resolve-dir
- [email protected] node_modules\gulp\node_modules\findup-sync
- [email protected] node_modules\gulp\node_modules\liftoff
- [email protected] node_modules\gulp\node_modules\wrappy
- [email protected] node_modules\gulp\node_modules\once
- [email protected] node_modules\gulp\node_modules\end-of-stream
- [email protected] node_modules\gulp\node_modules\orchestrator
- [email protected] node_modules\gulp\node_modules\inflight
- [email protected] node_modules\gulp\node_modules\glob
- [email protected] node_modules\gulp\node_modules\xtend
- [email protected] node_modules\gulp\node_modules\vinyl-fs\node_modules\through2
- [email protected] node_modules\gulp\node_modules\through2
- [email protected] node_modules\gulp\node_modules\gulp-util
- [email protected] node_modules\gulp\node_modules\glob-stream\node_modules\through2
- [email protected] node_modules\gulp\node_modules\glob-stream
- [email protected] node_modules\gulp\node_modules\vinyl-fs
- [email protected] node_modules\gulp
Moving on...
Next... install gulp-cli.
npm install --global gulp-cli
This is being installed globally, so it's available all the time, not just for this project.
This resulted in....
+-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | | +-- [email protected]
| | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
...luckily that all checks out. (wtflolbbq)
Moving on, inside your project you are expected to run this command....
npm install --save-dev gulp
The --save-dev
flag means gulp will be added to the dependencies of your package.json
file (if you have one)
(Reminder: package.json
is the file npm uses for describing a node package)
That gave me a LOT of output, which I'll break up and discuss in pieces...
Hmmm... gulp, the task runner, (transitively) depends on some very out of date things.
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated [email protected]: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
Then these warnings are typical npm
noise if you aren't building a package and don't have a package.json
file.
npm WARN saveError ENOENT: no such file or directory, open 'C:\users\username\scratch\markdown-it-3\package.json'
And here's the tree of dependencies created...
+-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
| +-- [email protected]
| +-- [email protected]
+-- [email protected]
+-- [email protected]
And finally more typical npm
noise about things missing from the non-existent package.json
npm WARN ENOENT ENOENT: no such file or directory, open 'C:\users\username\scratch\markdown-it-3\package.json'
npm WARN EPACKAGEJSON markdown-it-3 No description
npm WARN EPACKAGEJSON markdown-it-3 No repository field.
npm WARN EPACKAGEJSON markdown-it-3 No README data
npm WARN EPACKAGEJSON markdown-it-3 No license field.
Create a gulpfile.js
in your project root with these contents:
var gulp = require('gulp'); // this is node's "require" command.
gulp.task('default', function() {
// place code for your default task here
console.log("gulp!");
});
Now you can run gulp
and see what happens...
[22:27:42] Using gulpfile C:\users\username\scratch\markdown-it-3\gulpfile.js
[22:27:42] Starting 'default'...
gulp!
[22:27:42] Finished 'default' after 283 |s