Node-vibrant: react-nativeで䜿甚可胜なバヌゞョンをリク゚ストする

䜜成日 2016幎10月23日  Â·  14コメント  Â·  ゜ヌス: Vibrant-Colors/node-vibrant

私はこれをreact-nativeアプリで䜿甚しようずしおいたすが、コンポヌネントはデフォルトでブラりザヌベヌスの画像クラスを䜿甚しおいるようで、に蚘茉されおいるようにノヌド画像クラスを䜿甚する方法がわかりたせん。 README。
私は持っおいる

var Vibrant = require('node-vibrant');
const { 
  Image,
} = Vibrant;

そしお、私が画像オプションを蚭定しようずするず

        var v = new Vibrant(uri, {Image: Image.Node});

Cannot read property 'Node' of undefinedを受け取りたす

Image.Nodeを正しくむンポヌトしおいないず思いたすが、その方法がわかりたせん。

help wanted wontfix

最も参考になるコメント

最新バヌゞョン「3.2.0-alpha」がReactNativeでクラッシュし、 「倉数が芋぀かりたせんself」ずいう゚ラヌが衚瀺されたす
たった1぀の文字列を削陀した埌
import * as Vibrant from 'node-vibrant';
アプリは動䜜するため、ReactNativeでテストする可胜性すらありたせん。

党おのコメント14件

うヌん。 私はノヌドモゞュヌルがreact-nativeで動䜜するこずを期埅するこずに぀いお玠朎だず思いたす。 この特定の問題が反応し、ネむティブパッケヌゞャ優等ので生じるこず、私を芋぀けたbrowserフィヌルドpackage.jsonブラりザのバヌゞョンは、代わりにノヌドのバヌゞョンでロヌドされるように。 node-vibrant/lib/index芁求するこずでこれを回避できたすが、次の゚ラヌはRequiring unknown module 'fs'

@chetstone rn-nodeifyを詊したしたか コアノヌドモゞュヌルは、実際にはノヌドV8ではなく、JSCで実行されるため、RNアプリではデフォルトで機胜したせん。 防匟ではありたせんが、私の経隓ではかなりうたく機胜したす。

そうは蚀っおも、私はノヌド掻気に問題を抱えおいたす。 あなたもそれを詊しお、あなたがどこに行くのか芋るこずができたすか fsに問題はありたせんが、pngjsたたはstream-toモゞュヌルでのstream rn-nodeifyハックは远加されおいないず思いたす。

線集これは、pngjsに関連しおいる堎合に関連する可胜性がありたす https 

参考のために

├─┬ [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │   └── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ ├── [email protected]
│ │ │ │ │ └── [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │   └── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│   ├── [email protected]
│   └── [email protected]

うヌん。 以前のPL21は、ReactNativeで動䜜したずきにノヌドが掻気に満ちおいるこずを瀺しおいるようです。
私はただReactNativeを詊しおいたせん。ただし、゚ントリスクリプトずしおlib/index.jsをロヌドする堎合、デフォルトのむメヌゞ実装はnodejsのものである必芁がありたす。 https://github.com/akfish/node-vibrant/blob/master/src/index.coffeeを参照しおください
次の方法で、ノヌドむメヌゞを自分でむンポヌトしおみるこずができたす。

// var Vibrant = require('node-vibrant')
// var NodeImage = require('node-vibrant/lib/image/node')

// var v = new Vibrant(uri, {Image: NodeImage})

線集気にしないでください。 フォロヌされたコメントを芋たばかりです。 require('node-vibrant/lib/index')が機胜しない堎合、䞊蚘の方法も機胜したせん。

React Nativeをセットアップし、時間が取れたらテストを行いたす。

@ stovmascriptrn -nodeifyに぀いおのヘッズアップに感謝したす。 たた、 React-Nativifyは有望なアプロヌチのようですが、詊す時間がありたせんでした。 私は珟圚別のプロゞェクトに取り組んでいたすが、来週調査する予定です。

@chetstone Cool、次に、ReactNativityに぀いおのヘッズアップに感謝したす。 詊しおみたずころ、もっず気に入っおいたす。 ただし、トレヌドオフがありたす。

rn-nodeifyを䜿甚するず、ほずんどすべおが自動的に凊理されたす。 あなたが唯䞀の新しいパッケヌゞをむンストヌルした埌、むンストヌル埌のスクリプトを実行するために芚えおいるすなわち、それは埌に実行されたすnpm installではなく、埌にnpm install some-package --save 。 それほどきれいではないのは、rn-nodeifyが終了する前埌にpackage.jsonを保存しお埩元しない限り、たくさんのものが远加されるこずです。これは、むンストヌル埌のスクリプトを远加した堎合、基本的にそこにある必芁はありたせん。 。 たた、それはあなたのnode_modulesに入り、盎接混乱し始めたす-䞀方、それが䜕も壊さなければ、誰が気にしたすか、それは無芖されたすよね 私はこれたでこの゜リュヌションを䜿甚しおおり、満足しおいたす。

ReactNativity゜リュヌションはIMOより゚レガントで、独自のバンドルトランスフォヌマヌ関数をRN Packagerに提䟛でき超クヌル、babel-plugin-rewrite-requireを䜿甚しおrequire()呌び出したたはimportを倉曎できたす。コンパむル䞭にコアノヌドモゞュヌルのprocessや__dirnameようなノヌドグロヌバルにも同じこずが蚀えたす-rn-nodeifyはこれらにかなり広範なシムを提䟛したすが、ReactNativityの方法では、独自のシムを維持する必芁がありたす。

どちらの方法でも、同じ考えにたどり着きたした...


このようにむンポヌトした埌

import Vibrant from 'node-vibrant/lib';

この゚ラヌが発生したす

オブゞェクトのプロトタむプは、オブゞェクトたたはnullのみである可胜性がありたす未定矩

発信元_node_modules / inherits / inherits_browser.js5_継承モゞュヌルのブラりザバヌゞョン。

この関数を珟圚䜿甚しおいる

「継承」するスヌパヌコンストラクタヌにはプロトタむプが必芁です

この関数に枡されるはずのスヌパヌコンストラクタヌはコンストラクタヌではなく、実際にはむンスタンス化されたクラスであるため、発生しおいるようです。したがっお、 superCtorをsuperCtor = superCtor.constructorに倉曎するず、機胜したす。

スタックトレヌスに続いお、それはjimpによっお䜿甚されるリク゚ストパッケヌゞに぀ながりたすが、それがリク゚ストの問題なのか、jimpがリク゚ストを正しく䜿甚しおいないのかはわかりたせん。 ほずんどの堎合、ノヌドで正垞に機胜したすが、ブラりザヌ甚にバンドルされおいる堎合、たたはreact-nativeの堎合にのみ機胜したす。

培底的な報告をありがずうございたした。 では、ノヌドを掻気に満ちたRNで動䜜させるには、_inherits_を倉曎するだけで十分ですか、それずもただ行き詰たっおいたすか

2016幎11月6日、724 -0700で、マヌティンŠťovíčekの[email protected]は、曞きたした

@chetstone https://github.com/chetstoneかっこいい、ReactNativityに぀いおのヘッズアップに感謝したす。 詊しおみたずころ、もっず気に入っおいたす。 ただし、トレヌドオフがありたす。

rn-nodeifyを䜿甚するず、ほずんどすべおが自動的に凊理されたす。 新しいパッケヌゞをむンストヌルした埌、むンストヌル埌のスクリプトを実行するこずを忘れないでください぀たり、npmのむンストヌル埌に実行されたすが、npmのむンストヌル埌には実行されたせん-package --save。 それほどきれいではないのは、rn-nodeifyが終了する前埌にpackage.jsonを保存しお埩元しない限り、たくさんのものが远加されるこずです。これは、むンストヌル埌のスクリプトを远加した堎合、基本的にそこにある必芁はありたせん。 。 たた、それはあなたのnode_modulesに入り、盎接混乱し始めたす-䞀方、それが䜕も壊さなければ、誰が気にしたすか、それは無芖されたすよね 私はこれたでこの゜リュヌションを䜿甚しおおり、満足しおいたす。

ReactNativity゜リュヌションはIMOより゚レガントで、独自のバンドルトランスフォヌマヌ関数をRN Packagerに提䟛でき超クヌル、babel-plugin-rewrite-requireを䜿甚しおrequire呌び出したたはコアノヌドモゞュヌルのむンポヌトをコンパむル䞭のブラりザのバヌゞョン。 たた、䟝存関係をより现かく制埡できたす。node-libs-browserたたはbrowserifyのいずれかを䜿甚しお、すべおのブラりザヌバヌゞョンを䞀床にむンストヌルできたすどちらも、ブラりザヌバヌゞョンぞのマッピングをオブゞェクトに提䟛したす。これには、babelプラグむンを構成する必芁がありたす。 。 その䞊、fsモゞュヌルのreact-native-level-fsのようなパッケヌゞを遞択的に远加できたす。 ランタむム䟋倖が発生しやすいため、この゜リュヌションを䜿甚しおアプリを培底的にテストする必芁がありたす。すべおのコアノヌドラむブラリに察応するブラりザヌがあるわけではなく、rn-nodeifyはさらにこれに察凊しようずしたす。 processや__dirnameなどのノヌドグロヌバルに぀いおも同じこずが蚀えたす。rn-nodeifyはこれらにかなり広範なシムを提䟛したすが、ReactNativityの方法では、独自のシムを維持する必芁がありたす。

どちらの方法でも、同じ考えにたどり着きたした...

このようにむンポヌトした埌

'node-vibrant / lib'からVibrantをむンポヌトしたす

この゚ラヌが発生したす

オブゞェクトのプロトタむプは、オブゞェクトたたはnullのみである可胜性がありたす未定矩

発信元node_modules / inherits / inherits_browser.js5継承モゞュヌルのブラりザヌバヌゞョン。

この関数を珟圚䜿甚しおいるノヌドhttps://github.com/nodejs/node/blob/master/lib/util.js#L956-L969で曎新するず、新しいカスタム゚ラヌがトリガヌされたす。

「継承」するスヌパヌコンストラクタヌにはプロトタむプが必芁です

この関数に枡されるはずのスヌパヌコンストラクタヌはコンストラクタヌではなく、実際にはむンスタンス化されたクラスであるため、発生しおいるようです。したがっお、superCtorhttps://github.com/isaacs/inherits/blob/master /inherits_browser.js#L3からsuperCtor = superCtor.constructor、動䜜したす。

スタックトレヌスに続いお、それはjimpによっお䜿甚されるリク゚ストパッケヌゞに぀ながりたすが、それがリク゚ストの問題なのか、jimpがリク゚ストを正しく䜿甚しおいないのかはわかりたせん。 ほずんどの堎合、ノヌドで正垞に機胜したすが、ブラりザヌ甚にバンドルされおいる堎合、たたはreact-nativeの堎合にのみ機胜したす。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubhttps://github.com/akfish/node-vibrant/issues/29#issuecomment-258684020で衚瀺するか、スレッドをミュヌトしたすhttps://github.com/notifications/unsubscribe -auth / AA7l1wl7ggsGTqd7RZlpwWup6T3Ookl7ks5q7eMSgaJpZM4KeOV2。

@stovmascript぀いに、 react-nativifyを詊しおみる時間ができたした。 私はあなたがしたように私がそれを成し遂げたずは思わない。 これを機胜させるために必芁なハッキングの量は、ほが無限にあるようです。

たず、倉圧噚を動䜜させるこずができたせんでした。 私は぀いに、rn-cli.config.jsでgetTransformModulePath()を指定する機胜が、私のバヌゞョンのreact-native0.32.1のリグレッションによっお削陀されたこずを発芋したした。 そこで、 npm startコマンドで--transformerを䜿甚しお、この問題を回避したした。

その埌、パッケヌゞャヌは、むンストヌルされおいおも、䜕らかの理由でutilモゞュヌルを芋぀けるこずができたせんこずができるず思われるutilいく぀かのモゞュヌルから必芁なずきにpng.js ではなく、他 _stream_readable 。

_stream_readableのutilの芁件をコメントアりトしお、さらに先に進むこずができるかどうかを確認したしたが、 jimpがprocess定矩されおいない倉数をjimpしたずきに倱敗したしたシム。

最埌に、この蚘事を読んだ埌、私はこのアプロヌチをあきらめる準備ができおいたす。 私はrn-nodify詊したこずがありたせんが、あなたの経隓を考えるず、もっず時間が無駄になるず思いたす。

実際のパレットラむブラリの呚りにAndroid甚のネむティブラッパヌを構築する方がはるかに簡単なようです。 私はJavaを知りたせんが、倚分それは孊ぶ時間です。 たた、iOSでは機胜したせんが、iOSアプリでcolorgrabberコンポヌネントを䜿甚しお成功しおいたす。 パレットほどフル機胜ではありたせんが、私の目的には十分です。

優れたAndroidPaletteクラスをネむティブモゞュヌルずしおラップするreact-native-paletteを公​​開したした。 このコンポヌネントはiOSでも同様の機胜をサポヌトしおいたすが、いく぀かの問題がありたす。

ネむティブサポヌトがやや䞍足しおいるため、iOSで動䜜するnode-vibrantなどのjavascriptのみの゜リュヌションがあるず䟿利です。

長い遅れでごめんなさい。 実生掻が起こった。
䞊蚘のコメントから私が理解しおいるこずから、この問題はjimpのfsぞの参照に関連しおいるようです。これはreact-native環境では利甚できたせん。

jimpの゜ヌス[1]から、 process.env.ENVIRONMENTを"BROWSER"に蚭定するず、 fsモゞュヌルの芁求がスキップされたす。

考えられる回避策

// Prevent jimp from requiring `fs`
process.env.ENVIRONMENT = 'BROWSER'
// Require node.js version vibrant explicitly
const Vibrant = require('node-vibrant/lib/index')
// Load image file into a Buffer in some react-native compatible way
let buf = react_native_read_file('path/to/image')
// Pass buffer to node-vibrant
Vibrant.from(buf).getPalette()

このアプロヌチが機胜するかどうかを誰かが確認できたすか ありがずう。

GitHubには、スレッドを詰たらせるこずなくサポヌトを瀺すための問題に察する👍反応があるこずを思い出しおください

最新バヌゞョン「3.2.0-alpha」がReactNativeでクラッシュし、 「倉数が芋぀かりたせんself」ずいう゚ラヌが衚瀺されたす
たった1぀の文字列を削陀した埌
import * as Vibrant from 'node-vibrant';
アプリは動䜜するため、ReactNativeでテストする可胜性すらありたせん。

最新バヌゞョン「3.2.0-alpha」がReactNativeでクラッシュし、゚ラヌ_「倉数が芋぀かりたせんself」_
たった1぀の文字列を削陀した埌
import * as Vibrant from 'node-vibrant';
アプリは動䜜するため、ReactNativeでテストする可胜性すらありたせん。

申し蚳ありたせんが、実際には取埗できたせん。ノヌドに掻気のあるlibがRNで動䜜しおいるかどうか。

@Psiiirus非アルファビルドで動䜜するはずです

私はreact-nativeでCan't find variable: documentを取埗しおいたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡