I have two react apps(A-app, B-app). I need to import one component from A-app to B-app. But when I tried to do this I have seen this error.
./src/App.js
Module not found: You attempted to import ../../src/components/Dashboard/container which falls outside of the project src/ directory. Relative imports outside of src/ are not supported. You can either move it inside src/, or add a symlink to it from project's node_modules/.
I tried to do symlink on this component in B-app node_modules. But it didn`t work.
Also I tried to create .env file in root project directory and put this NODE_PATH=src/
in file. But this solve doesn`t work too.
How can I fix this?
Sorry for my English.
I stumbled on this post while trying to solve a similar issue. I think the solution might be relevant so I'm posting it here.
As of NPM 2.0 you can declare local dependencies in package.json
. This allows you to maintain local modules in a folder outside of src/
and have them copied to node_modules
during npm install
.
Place your module anywhere outside of src/
, for example:
./packages/app-b-dashboard
Declare a local dependency in package.json
using the file:
prefix:
"dependencies": {
"app-b-dashboard": "file:./packages/app-b-dashboard"
}
Run
npm install
Now you can import it in your A-app
import Dashboard from 'app-b-dashboard/container'
are you using create react app ? if yes, you need to move your module into your src directory. This is special restriction added by developers of create-react-app . mentioned here
If moving the code is not an option for you, there are 2 solutions.
Got to your A-app node_modules
folder and run the following
ln -s ../../../src/components/Dashboard ./app-b-dashboard
After creating the following symbolic link in your node_modules
folder you can import
in you A-app
import Dashboard from 'app-b-dashboard/container'
The names might be different depending on the specific layout of your project. This is my best guess based on the info you provided.
I removed my node_module
and package-lock.json
files. and reinstall npm
using npm install
resolved my errors. I dont know this is a good way to do it. but its worked for me.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.