2017-06-10 6 views
2

npm installを使用してreact-nativeプロジェクトにreduxをインストールしようとすると問題が発生します。私が実行するたびにnpm install redux --savereact-nativeディレクトリ内にnode_modulesがクリアされます。npmはnode_moduleのreact-nativeをクリアします

次にrm -rf node_modules && npm installを使用します。react-nativeパッケージはnode_modulesにインストールされませんので、プロジェクトを再作成する必要があります。

また、私は私の現在のreact-nativeのプロジェクトに別のプロジェクトからnode_modulesで過去& react-reduxreduxをコピーしよう。しかし、それは成功することはできません、エラーは私をギブスのissueに導いています。私はこの助けに続き、それはまた失敗する。

いくつかの他の情報:

➜NPM:5.0.3

➜反応ネイティブ-CLI:2.0.1

➜反応し、ネイティブ:0.45.0

➜パッケージを.json

{ 
    "name": "MyProjectNAME", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
     "start": "node node_modules/react-native/local-cli/cli.js start", 
     "test": "jest" 
    }, 
    "dependencies": { 
     "react": "16.0.0-alpha.12", 
     "react-native": "0.45.0", 
     "react-redux": "^5.0.5", 
     "redux": "^3.6.0" 
    }, 
    "devDependencies": { 
     "babel-cli": "^6.24.1", 
     "babel-jest": "20.0.3", 
     "babel-preset-es2015": "^6.24.1", 
     "babel-preset-es2017": "^6.24.1", 
     "babel-preset-react-native": "1.9.2", 
     "jest": "20.0.4", 
     "react-test-renderer": "16.0.0-alpha.12" 
    }, 
    "jest": { 
     "preset": "react-native" 
    } 
} 

いずれもお勧めです。私の現在のreact-nativeのプロジェクトに

1)Reduxの

2をreactjsプロジェクトを作成してインストール)ステップ1でnode_modulesのすべてのコンテンツをコピーして貼り付けます。

答えて

6

回避方法を使用してこの問題を解決しましたが、npm install redux --saveを実行したときに反応ネイティブモジュールが削除された理由を教えてください。

はソリューション:

  1. 移動プロジェクトフォルダの外パッケージlock.json
  2. ラン(あなたが後でそれを検査する必要がありますので、まだそれを削除しないでください)rm -rf node_modules && npm install
  3. /node_modulesを確認し、ネイティブに応答する必要があります。
  4. 既存のモジュールを削除せずにreduxをインストールするには、npm install reduxを実行してください(デフォルトではnpm v5は--saveを実行します)

package-lock.jsonとは何ですか?

npm v5の変更点は、hereです。 npmが/ node_modulesまたはpackage.jsonを変更するたびに、そのうちの1人がpackage-lock.json(lockfile)を生成しています。

package-lock.jsonを使用すると、npm install(v5)を実行するすべてのユーザーは、開発中のnode_modulesツリーとまったく同じものを取得します。したがって、このファイルもコミットする必要があります。

npm install somePackageNameを実行した後で、反応ネイティブモジュールと他のモジュールが削除されたのはなぜですか?package.jsonで定義されていますか?

既存のノードモジュールがnpm v5より前にインストールされたために削除が行われました。あなたはモジュール(例えばnpm install redux)をインストールするには、NPMのV5を使用する場合は、3つのことを気づくでしょう:(存在する場合、または更新)

  1. パッケージlock.jsonが生成されます。 Reduxとその依存関係は、その中に保存されます。
  2. reduxのpackage.jsonは、npm v5より前にインストールされたノードモジュールとは異なります(_from、_requiredBy、_resolvedなど)。
  3. 最後に、v5より前にインストールされたモジュールは削除され、package.json およびの余分なフィールドが新しく生成されたpackage-lock.jsonに存在しないために推測されます。

だから、もう一度rm -rf node_modules && npm installを実行するためのパッケージ-lock.jsonファイルの問題を解決することはできません(あなたが古いパッケージ-lock.jsonを確認することができますか?のみReduxのを覚えておいてくださいとその依存関係がファイルに保存された)

これは他の人に役立つことを期待しています。

+0

素晴らしい!どうもありがとうございました – Robust

+0

@hwd喜んで役立ちます –

0

最後にありがとう、私は2つの段階で、この問題を解決しました。

リロードアプリ。すべてがうまくいく。

関連する問題