2017-04-05 17 views
1

私はES2015をサポートするためにバベルでそれを実行している、私のNode.js + Express.jsプロジェクトのためにmodule-aliasを使用しています。Node.jsのバベル構築とNPMモジュールエイリアス

アプリケーションは、私が最初に(package.jsonから)babelでそれを構築する場合は、しかし、babel-nodeを始めたときに完璧に動作します。その後、

"build": "babel ./app --out-dir ./app_dist" 

とスタート:

"start": "node ./app_dist/bin/www" 

それは明らかに正しいを見つけることができませんmodule-aliasで指定されたパス。代わりにapp_distに探しての、Node.jsのは、appでインポートを検索し、それは理解していないES2015 importディレクティブを検索し、スロー:

私は appから app_distに、そのビルドの開始前に別名を変更する場合は

SyntaxError: Unexpected token import

、それ問題は、それらのエイリアスをマッピングする方法(または別の_moduleAliasesコンフィグレーションを使用する方法)です。そのため、アプリケーションは開発とプロダクションでパスを正しく解決しますか?

はたぶん、このようなスタックとエイリアスモジュールに別の方法がありますか?前もって感謝します。

答えて

1

この問題の解決方法

module-aliasで相対パスのエイリアスを設定するには、package.jsonではなく、Babelでトランスポートされるルートディレクトリ内のJavaScriptファイルで定義する必要があります。私の場合は

、このようconfigディレクトリ内aliases.jsスクリプトを作成:

import path from 'path'; 
import moduleAlias from 'module-alias'; 

moduleAlias.addAlias('@root', path.resolve(__dirname, '../../')); 

は説明した問題を解決し、比較的現在の作業ディレクトリに解決のパスになります。

関連する問題