You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
create-react-app 2.0 - lerna - how to use absolute path imports within all packages #4942
I'm using CRA 2.0's new lerna support #1333#3741 and it's working great! However, I was wondering if there was a way to support absolute paths for all imports, not just the cross package imports.
Using the example site from #3741,
If cra-comps/comp1/comp1_internal.js was actually in cra-comps/comp1/someotherfolder/comp1_internal.js
In comp1.js, is there a way to import it with: import addInternal from 'someotherfolder/comp1_internal'
rather than: './someotherfolder/comp1_internal'
Given, this example is simple. However, a more complex folder structure makes the relative path imports a pain.
Are absolute paths imports within a package possible in this scenario?
@kblooie I just ran across this same problem and the best solution I could some up with is even though the import is in the same package, you have to treat it like it's in another package. For example cra-comps/comp1/comp1_internal.js currently has this import:
import addInternal from './comp1_internal';
To use an absolute import you need to do this:
import addInternal from 'comp1/comp1_internal';
So using your example you would need to do:
import addInternal from 'comp1/someotherfolder/comp1_internal';
I'm not a fan of it and would prefer not to have the comp1 if you're importing from the same package. Maybe this is possible but I haven't found a way to do it.
Activity
MikeSuiter commentedon Sep 12, 2018
@kblooie I just ran across this same problem and the best solution I could some up with is even though the import is in the same package, you have to treat it like it's in another package. For example
cra-comps/comp1/comp1_internal.jscurrently has this import:import addInternal from './comp1_internal';To use an absolute import you need to do this:
import addInternal from 'comp1/comp1_internal';So using your example you would need to do:
import addInternal from 'comp1/someotherfolder/comp1_internal';I'm not a fan of it and would prefer not to have the
comp1if you're importing from the same package. Maybe this is possible but I haven't found a way to do it.kblooie commentedon Sep 17, 2018
@MikeSuiter Thanks for the solution! I agree that it's not ideal, but it works for my needs.