モジュールを構築してnpmに公開しています。モジュールはReact
に依存しています。私は現在yarn
とyarn link
を使用しています。devの "yarn/npm link"ワークフローが必要で、 "multiple copies of react"モジュールの公開用
私はこのモジュールを親プロジェクトにビルドしましたが、これをスタンドアロンモジュールに展開しようとしています。私は親プロジェクトの一部としてモジュールをローカルで開発し続けたいと思います。
モジュールでpackage.json
は、次のようになります。
"devDependencies": {
"react": "^16.1.1",
"react-reconciler": "^0.6.0",
"react-dom": "^16.0.0",
"regl": "^1.3.0",
}
私はモジュールディレクトリにyarn link
を実行することにより、親の投影では、このモジュールが含まれ、その後、親ディレクトリでyarn link module-name
。親プロジェクトに含めるとエラーがスローされます
要素refは文字列(キャンバス)として指定されていますが、オーナーは設定されていません。 Reactが複数読み込まれている場合があります。 (詳細: https://reactjs.org/warnings/refs-must-have-owner.html)。
私は、以前npm
代わりのyarn
を使用して、このワークフローを試してみましたが、同じ問題がありました。
私はこれが定型文で解決された問題であると考えています。私は他のプロジェクトを見てきましたが、共通の解決策を見ていませんでした。私は、「ベストプラクティスが答えるハイレベルを探してい。私は現在、私のプロジェクトで使用しているオプションは全くリンクnpm
/yarn
をスキップで構成さ
私が間違っているなら、私を修正してください。これは、親/ホストプロジェクトが 'package.json'にローカルファイルパスを持つことを要求しているようです。これは、ローカルモジュールを持たない環境に展開するときにどのように処理されますか? – kevzettler
公開されると、上記のパッケージは通常のNPM依存として消費されます。Reactとの互換性のある依存関係を宣言している限り、NPMは同じReactインスタンスに依存させることができます。 –
明確にするために、NPMに公開されるモジュールではなく、「The app」というホストプロジェクトについて話していました。 'The App'は伝統的に 'npm link module_name'を行うコードベースです。これは 'The App'を配備するときのように聞こえますが、package.jsonを編集してNPMパッケージ名のローカルパスに変更し、開発時にその逆を行う必要があります。 – kevzettler