web-dev-qa-db-ja.com

反応ネイティブの開始により、無効な正規表現無効エラーが発生する

次のリンクをたどって、react-nativeを使い始めました

react nativeを使い始める

私はエキスポなしでネイティブアプリを作成しようとしたので、ドキュメントに従って、私は次のコマンドに従いました

npm install -g react-native-cli
react-native init AwesomeProject

実行後Androidコマンド

react-native run-Android

エミュレータでエラーが発生しました

enter image description here

だから私はスタートコマンドを使用してメトロサーバーを実行しました

react-native start

このコマンドにより、コンソールで別のエラーが発生しました

enter image description here

14
user4241989

解決策は、上記で答えたように、モジュールblacklist.jsファイル内のmetro-configファイルを変更することです。ただし、npm/yarn installを実行するたびに、もう一度変更する必要があります。

だから私はあなたがファイルに行く時間を節約し、毎回それを変更するソリューションを考え出しました:

JavaScriptを使用してファイルを編集するライブラリを使用しました。

  1. Replace-in-fileモジュールをインストールします。
npm install --save replace-in-file
  1. node_moduleフォルダーと同じレベルでファイルを作成します。例:metro-fix.js.

  2. このスクリプトをコピーして貼り付けます。

//Load the library
const replace = require('replace-in-file');
// path for metro config file
const path = 'node_modules/metro-config/src/defaults/blacklist.js';
// creating options for editing the file
const options = [
  {
    files: path,
    from: 'modules[/',
    to: 'modules[\\/',
  },
  {
    files: path,
    from: 'react[/',
    to: 'react[\\/',
  },
  {
    files: path,
    from: 'dist[/',
    to: 'dist[\\/',
  },
];

try {
  let results;
  // looping on each option
  options.forEach(e => {
    results = replace.sync(e);
    console.log('Replacing "'+e.from+'" by "'+e.to+'"  results:', results[0].hasChanged);
  });

} catch (error) {
  console.error('Error occurred:', error);
}
  1. npm installを実行するたびに、次のように実行します。
node metro-fix.js

Replace-in-file docsを参照してください。

1
Moussaabmma

ええ、Nodeバージョン10にシフトするだけで動作します。

nvm install <version>
nvm use <version>

できます...... :)

1
Shekhar Kumar

私はこのステップでこの問題を解決しました:

  1. ノードv12をアンインストールしてノードv8.9.4をインストールする
  2. react-native-cliを再インストールします
  3. プロジェクトを再作成するreact-native init myApp --version 0.60.0
  4. react-native start

それが役に立てば幸い

0
Alhaddi Mulyadi

closeコマンドプロンプトとメトロバンドラー、もう一度実行

0
Majid Aziz

ノードのバージョンが高いためです。

  1. 解決策の1つは、ノードのバージョンを12.xから10.xに簡単にダウングレードするか、12.xをアンインストールして10.xをインストールすることです。

  2. 一方、他のプロジェクトで12.xを使用する場合はどうでしょうか。したがって、以下の解決策はそれをより簡単にします。ノードの複数のバージョンを制御できるnvmを使用できます。

したがって、最初にここからnvmをインストールします https://github.com/coreybutler/nvm-windows/releases

インストールしたら、nvmパスをシステム変数に追加することを忘れないでください。

次にnvm install 10.18.1 64

次にnvm install 12.14.1 64

インストールされているすべてのバージョンを一覧表示するにはnvm list

あるバージョンから別のバージョンに切り替える場合は常に、次のコマンドを使用します

nvm use 10.18.1  OR nvm use 12.14.1
0
Deepak N

はい、私もこの問題に直面しています。実際、ほとんどのユーザーに推奨されるNode.jsはバージョン10.16.3 LTSです。以下のchocoコマンドを使用すると、最新バージョンの12.11.0がインストールされます。 choco install -y nodejs.install python2 jdk8

Nodeバージョン12.11.0から10.16.3 LTSにダウングレードしましたが、それでうまくいきました。