2016-06-14 3 views
0

だが、私は私のコンパイルされたJavaScriptファイルは以下のようなディレクトリ構造で、その結果、私のソースファイルと並行して存在するとしましょうファイル:することが可能です入力に対するWebPACKの出力ファイルを作成します

- TimeframeToolbar 
    - TimeframeToolbar_compiled.js 
    - TimeframeToolbar_src.js 
    - dependencies 
     - *contains js files that are imported by TimeframeToolbar_src.js* 

Webpackでこれをしますか?私が知る限り、出力パスは単一のディレクトリのみを許可します。つまり、ソースファイルとコンパイルされたファイルツリーが完全に分離されている必要があります。

+0

ファイルごとにエントリを指定し(グロブ)、出力パターンを使用する必要があります。可能であれば、実際にあなたがそれを使用していると仮定すると、Babelを直接通過するのが理にかなっているかもしれません。 –

+0

パスに出力パターンを使用する方法を説明できますか?私は 'filename:" [name] .bundle.js "'のようなことをすることができますが、私はパスでそれを行うオプションは見当たりません。実際には、[docs state for output.path](https://webpack.github.io/docs/configuration.html#output-path): '出力ディレクトリを絶対パスとして指定する(必須).'また、あなたが提案しているバベルの解決策を知っています。私は確かにバベルを使用していますが、それがどのように違いを生むのかは分かりません。 – maxedison

+0

さて、わかりました。十分な制御を得るには、この 'module.exports = [{... config ...}、{... config ...}]'のような構造体を生成する必要があります。私はそれが出力を十分にコントロールできると思う。この特殊なケースでは、この使用例ではwebpackがうまく動作しないため、Babelを直接使用する方が便利な場合があります。 –

答えて

1

トリックは、エントリ設定オブジェクトのキーを出力ファイルに必要なパスにすることです。たとえば:

entry: { 
    'feature-1/feature-1': './dev/feature-1/feature-1.jsx', 
    'feature-2/feature-2': './dev/feature-2/feature-2.jsx', 
}, 
output: { 
    filename: '[name].js', 
    path: './build', 
} 

これは、次のコンパイルされたファイルになります:

./build/feature-1/feature-1.js
./build/feature-2/feature-2.js

だから、本質的にoutput.filename[name]プレースホルダは、ディレクトリ・パスではなくファイル名だけされて終わります。

関連する問題