Skip to content

Latest commit

 

History

History
552 lines (517 loc) · 22.1 KB

getting_started.md

File metadata and controls

552 lines (517 loc) · 22.1 KB

Getting started with gulp

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

Source

See also