2017-11-19 12 views
0

複数のエントリポイントを使用していくつかの異なるアプリケーションを作成するプロジェクトがあります。ディレクトリ構造は次のようになります。エントリポイントごとに解決モジュール

. 
├── app-1 
│   └── components 
│    ├── a.js 
│    └── b.js 
├── app-2 
│   └── components 
├── app-3 
│   └── components 
├── package.json 
└── webpack.config.js 

アプリ内では、アプリケーション名を参照せずにファイルをインポートできます。例えば、app-1/components/a.jsに私はb.js

import B from 'components/b'

とをインポートできるようにしたいとのWebPACKこれは app-3場合には、たとえば、どこのファイルの生活それだから app-1を参照するとされていないことを知っています同じ経路がそこに存在する。 webpack.config.jsで、次の設定で

... 

resolve: { 
    modules: [ 
    path.resolve(__dirname, 'app-3'), 
    path.resolve(__dirname, 'app-2'), 
    path.resolve(__dirname, 'app-1'), 
    'node_modules', 
    ], 
} 

... 

app-3が最も高い優先順位を持つことになります。私が本当に好きなのは、優先順位を持たないことです。代わりに、それが住んでいるアプリに基づいてモジュールを探します。

私はこれを正しく説明しているかどうかは確かではありませんが、 1つを見つけることができません。誰かのための簡単な修正とsnarky "あなたもgoogle"と一緒に来てくれるだろう

答えて

1

このプラグインは、助けることができる:https://www.npmjs.com/package/resolve-entry-modules-webpack-plugin

正確には、別のエントリを互いにインポートしないようにしながら、解決パスにエントリを追加します。

+0

これは私が探していたものとまったく同じように見えます。その時点で(別の理由で)別の解決策を取りに行きましたが、今後このプラグインを試してみる必要があります。 – Damon

0

私は同じ問題があり、エイリアスで解決しました。私の輸入は今探しています: import "@app1/components/b"

https://webpack.js.org/configuration/resolve/

+0

'app1'部分を切り取り、' import components/b'にする方法はありますか? Afaikエイリアスはその動作を達成できません。 – Damon

関連する問題