2017-05-19 11 views
3

では反応輸入ルートパスヘルパーを反応させるのは、私はこの問題私はインポートする必要があるため

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

、別のファイルにそれがimport approxPerDay from '../utils/approxPerDay.js'

それは本当にハードだと時間が見つけるためにかかる可能性を持っているヘルパーやコンポーネントを変化させます相対パスです。 npmやヘルパーがこの問題を解決できるかどうか

+0

ですあなたはwebpackを使用していますか? –

+0

これはhttp://stackoverflow.com/questions/29755065/es6-import-from-rootの複製であるようです。es6には直接質問があります。 – unflores

+0

[react、webpack:importステートメントで ".."を避けてください](https://stackoverflow.com/questions/39311484/react-webpack-avoid-in-import-statements?rq=1) –

答えて

3

あなたのモジュールバンドラによって異なります。 Webpack 2のためのあなたはこのような何か行うことができます:あなたはこのようなネイティブパスとしてsrcを使用することができるようになりますたより

module.exports = { 
    ... 

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

    ... 
} 

module.exports = { 
    ... 

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

    ... 
} 

同じWebpack 1ために

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

so aliasここのトリックですか? –

+0

このトリックは、WP2では 'resolve.modules'、WP1では' resolve.root'です。エイリアスは、ディレクトリのエイリアス名を提供するだけです。それがなければ、あなたは 'utils/approxPerDay.js'のようにあなたのファイルをインポートすることができますが、エイリアスはもっと明確です:' src/utils/approxPerDay.js' IMHO。 –

+0

ドキュメントhttps://webpack.js.org/configuration/resolve/を参照してください。 –