diff --git a/cfg/cfg.go b/cfg/cfg.go
index 93ae060..e9ed812 100644
--- a/cfg/cfg.go
+++ b/cfg/cfg.go
@@ -19,6 +19,8 @@
 //       homepage: https://www.mattfarina.com
 //     ignore:
 //     - appengine
+//     excludeDirs:
+//     - 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.
+//    - excludeDirs: 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..f3af3f5 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:"excludeDirs,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:"excludeDirs,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..2216bee 100644
--- a/docs/glide.yaml.md
+++ b/docs/glide.yaml.md
@@ -14,6 +14,8 @@
         homepage: https://www.mattfarina.com
     ignore:
     - appengine
+    excludeDirs:
+    - 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.
+- `excludeDirs`: 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`.
