Commit c71337f6 authored by Dan Abramov's avatar Dan Abramov
Browse files

Tweak how NODE_PATH is handled

parent 82066ac4
No related merge requests found
Showing with 19 additions and 13 deletions
+19 -13
......@@ -11,13 +11,17 @@
var path = require('path');
// We support resolving modules according to NODE_PATH.
// We support resolving modules according to `NODE_PATH`.
// This lets you use absolute paths in imports inside large monorepos:
// https://github.com/facebookincubator/create-react-app/issues/253.
// It works just like NODE_PATH in Node:
// It works similar to `NODE_PATH` in Node itself:
// https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
// We will export `nodePaths` as an array of absolute paths.
// It will then be used by Webpack (and potentially other tools).
// It will then be used by Webpack configs.
// Jest doesn’t need this because it already handles `NODE_PATH` out of the box.
var nodePaths = (process.env.NODE_PATH || '')
.split(process.platform === 'win32' ? ';' : ':')
.filter(Boolean)
......
......@@ -67,11 +67,12 @@ module.exports = {
publicPath: '/'
},
resolve: {
// This allows you to set a root for where Webpack should look for modules.
// It must be an absolute path or an array of absolute paths.
// This lets you use absolute paths in imports inside large monorepos:
// https://github.com/facebookincubator/create-react-app/issues/253.
root: paths.nodePaths,
// This allows you to set a fallback for where Webpack should look for modules.
// We read `NODE_PATH` environment variable in `paths.js` and pass paths here.
// We use `fallback` instead of `root` because we want `node_modules` to "win"
// if there any conflicts. This matches Node resolution mechanism.
// https://github.com/facebookincubator/create-react-app/issues/253
fallback: paths.nodePaths,
// These are the reasonable defaults supported by the Node ecosystem.
extensions: ['.js', '.json', ''],
alias: {
......
......@@ -62,11 +62,12 @@ module.exports = {
publicPath: publicPath
},
resolve: {
// This allows you to set a root for where Webpack should look for modules.
// It must be an absolute path or an array of absolute paths.
// This lets you use absolute paths in imports inside large monorepos:
// https://github.com/facebookincubator/create-react-app/issues/253.
root: paths.nodePaths,
// This allows you to set a fallback for where Webpack should look for modules.
// We read `NODE_PATH` environment variable in `paths.js` and pass paths here.
// We use `fallback` instead of `root` because we want `node_modules` to "win"
// if there any conflicts. This matches Node resolution mechanism.
// https://github.com/facebookincubator/create-react-app/issues/253
fallback: paths.nodePaths,
// These are the reasonable defaults supported by the Node ecosystem.
extensions: ['.js', '.json', ''],
alias: {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment