diff --git a/cfg/cfg.go b/cfg/cfg.go
index 93ae060..93a309b 100644
--- a/cfg/cfg.go
+++ b/cfg/cfg.go
@@ -19,6 +19,8 @@
 //       homepage: https://www.mattfarina.com
 //     ignore:
 //     - appengine
+//     exclude:
+//     - node_modules
 //     import:
 //     - package: gopkg.in/yaml.v2
 //     - package: github.com/Masterminds/vcs
@@ -43,6 +45,8 @@
 //      owners of a security issue without filing a public bug.
 //    - ignore: A list of packages for Glide to ignore importing. These are package
 //      names to ignore rather than directories.
+//    - exclude: A list of directories in the local codebase to exclude from
+//      scanning for dependencies.
 //    - import: A list of packages to import. Each package can include:
 //        - package: The name of the package to import and the only non-optional item.
 //        - version: A semantic version, semantic version range, branch, tag, or
diff --git a/cfg/config.go b/cfg/config.go
index 88bdc71..db9297c 100644
--- a/cfg/config.go
+++ b/cfg/config.go
@@ -41,6 +41,10 @@
 	// those to skip.
 	Ignore []string `yaml:"ignore,omitempty"`
 
+	// Exclude contains a list of directories in the local application to
+	// exclude from scanning for dependencies.
+	Exclude []string `yaml:"exclude,omitempty"`
+
 	// Imports contains a list of all non-development imports for a project. For
 	// more detail on how these are captured see the Dependency type.
 	Imports Dependencies `yaml:"import"`
@@ -58,6 +62,7 @@
 	License     string       `yaml:"license,omitempty"`
 	Owners      Owners       `yaml:"owners,omitempty"`
 	Ignore      []string     `yaml:"ignore,omitempty"`
+	Exclude     []string     `yaml:"exclude,omitempty"`
 	Imports     Dependencies `yaml:"import"`
 	DevImports  Dependencies `yaml:"devimport,omitempty"`
 }
@@ -90,6 +95,7 @@
 	c.License = newConfig.License
 	c.Owners = newConfig.Owners
 	c.Ignore = newConfig.Ignore
+	c.Exclude = newConfig.Exclude
 	c.Imports = newConfig.Imports
 	c.DevImports = newConfig.DevImports
 
@@ -108,6 +114,7 @@
 		License:     c.License,
 		Owners:      c.Owners,
 		Ignore:      c.Ignore,
+		Exclude:     c.Exclude,
 	}
 	i, err := c.Imports.Clone().DeDupe()
 	if err != nil {
@@ -154,6 +161,17 @@
 	return false
 }
 
+// HasExclude returns true if the given name is listed on the exclude list.
+func (c *Config) HasExclude(ex string) bool {
+	for _, v := range c.Exclude {
+		if v == ex {
+			return true
+		}
+	}
+
+	return false
+}
+
 // Clone performs a deep clone of the Config instance
 func (c *Config) Clone() *Config {
 	n := &Config{}
@@ -163,6 +181,7 @@
 	n.License = c.License
 	n.Owners = c.Owners.Clone()
 	n.Ignore = c.Ignore
+	n.Exclude = c.Exclude
 	n.Imports = c.Imports.Clone()
 	n.DevImports = c.DevImports.Clone()
 	return n
diff --git a/dependency/resolver.go b/dependency/resolver.go
index 6c00a41..a0ba011 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -232,6 +232,12 @@
 		if err != nil && err != filepath.SkipDir {
 			return err
 		}
+		pt := strings.TrimPrefix(path, r.basedir+string(os.PathSeparator))
+		pt = strings.TrimSuffix(pt, string(os.PathSeparator))
+		if r.Config.HasExclude(pt) {
+			msg.Debug("Excluding %s", pt)
+			return filepath.SkipDir
+		}
 		if !fi.IsDir() {
 			return nil
 		}
diff --git a/docs/glide.yaml.md b/docs/glide.yaml.md
index 784910b..5bec302 100644
--- a/docs/glide.yaml.md
+++ b/docs/glide.yaml.md
@@ -14,6 +14,8 @@
         homepage: https://www.mattfarina.com
     ignore:
     - appengine
+    exclude:
+    - node_modules
     import:
     - package: gopkg.in/yaml.v2
     - package: github.com/Masterminds/vcs
@@ -31,6 +33,7 @@
 - license: The license is either an [SPDX license](http://spdx.org/licenses/) string or the filepath to the license. This allows automation and consumers to easily identify the license.
 - `owners`: The owners is a list of one or more owners for the project. This can be a person or organization and is useful for things like notifying the owners of a security issue without filing a public bug.
 - `ignore`: A list of packages for Glide to ignore importing. These are package names to ignore rather than directories.
+- `exclude`: A list of directories in the local codebase to exclude from scanning for dependencies.
 - `import`: A list of packages to import. Each package can include:
     - `package`: The name of the package to import and the only non-optional item. Package names follow the same patterns the `go` tool does. That means:
         - Package names that map to a VCS remote location end in .git, .bzr, .hg, or .svn. For example, `example.com/foo/pkg.git/subpkg`.
