2017-05-19 4 views
3

In reagieren, weil ich importieren müssen variiert Helfer oder Komponente ich dieses ProblemReagieren Import Wurzelpfad Helfer

import approxPerDay from '../../../utils/approxPerDay.js' 
import otherstuff from '../components/otherstuff' 

und in einer anderen Datei könnte es sein, import approxPerDay from '../utils/approxPerDay.js'

Es ist wirklich schwer und Zeit zu finden raubend ist der relative Weg ist. Gibt es irgendwelche Npm oder Helfer kann dieses Problem lösen?

+0

Sind Sie mit Webpack? –

+0

Dies scheint ein Duplikat von http://stackoverflow.com/questions/29755065/es6-import-from-root zu sein, obwohl die Frage direkt für es6 gestellt wird. – unflores

+0

Mögliches Duplikat von [react, webpack: meide ".." in Importanweisungen] (https://stackoverflow.com/questions/39311484/react-webpack-avoid-in-import-statements?rq=1) –

Antwort

3

Es hängt von Ihrem Modulbündler ab. Für Webpack 2 können Sie etwas tun:

module.exports = { 
    ... 

    resolve: { 
     modules: [ 
      'node_modules', 
      path.resolve(__dirname + '/src') 
     ], 
     alias: { 
      src: path.resolve(__dirname + '/src') 
     } 
    }, 

    ... 
} 

das gleiche für Webpack 1:

module.exports = { 
    ... 

    resolve: { 
     root: [ 
      path.resolve(__dirname + '/src') 
     ], 
     alias: { 
      src: path.resolve(__dirname + '/src') 
     } 
    }, 

    ... 
} 

als Sie src als native Pfad so zu verwenden, werden in der Lage:

import approxPerDay from 'src/utils/approxPerDay.js' 
import otherstuff from '../components/otherstuff' 
+0

so alias ist der Trick hier? –

+0

Der Trick ist 'resolve.modules' für WP2 und' resolve.root' für WP1. Alias ​​liefert nur den "Alias" -Namen für das Verzeichnis. Ohne es werden Sie in der Lage sein, Ihre Dateien wie folgt zu importieren: 'utils/approachPerDay.js', aber mit dem Alias ​​ist es klarer:' src/utils/approachPerDay.js' IMHO. –

+0

Suchen Sie in der Dokumentation https://webpack.js.org/configuration/resolve/ –

Verwandte Themen