問題タブ [babel-register]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
2770 参照

babeljs - Babel 7 @babel/register で Nighwatch.js を実行する

React 15.3、Webpack 4、および Babel 7のリポジトリがありclientます。Webpack は魅力的に機能しますが、Nightwatch 0.9.20 を使用する E2E テスト スイートは新しい@babel/registerパッケージでコンパイルできません。

当社は、babel のバージョンを 6 から 7 にアップグレードしています。

babel.config.jsファイルに以下を追加するソリューションがインターネット上に浮かんでいます。

私たちの例では、このソリューションは問題を解決しません。

プロジェクトの構造は次のとおりです。

nightwatch.conf.js 構造は次のようになります。

私たちのnightwatch_globals.jsファイル(エラーが呼び出されている場所は次のようになります:

そして、私たちのbabel.config.jsファイルは次のとおりです。

ターミナルで実行するクライアントディレクトリからnode nightwatch.conf.js ; nightwatch

ここに永続的なエラーがあります

私の直感では、インポート トークンが認識されない理由は、Babel 7 がコードのコンパイルをprocess.cwd(). ご覧のとおり、エラーは API から発生しています。nightwatch は client ディレクトリのパッケージであるため、Babel は api ディレクトリをコンパイルしていません (これはまだ Babel 6 にあります)。ただし、クライアント テスト スイート全体を API ファイルから独立させるためにリファクタリングする必要は避けたいと考えています。

解決策は@babel/register、クライアント側から API をコンパイルする方法を見つけることだと思いますが、このようなことを行う方法がわかりません。