Node-vibrant: react-nativeμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•œ 버전 μš”μ²­

에 λ§Œλ“  2016λ…„ 10μ›” 23일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: Vibrant-Colors/node-vibrant

λ°˜μ‘ λ„€μ΄ν‹°λΈŒ μ•±μ—μ„œ 이것을 μ‚¬μš©ν•˜λ €κ³ ν•˜λŠ”λ° ꡬ성 μš”μ†Œκ°€ 기본적으둜 λΈŒλΌμš°μ € 기반 이미지 클래슀λ₯Ό μ‚¬μš©ν•˜λŠ” 것 κ°™μœΌλ©° λ¬Έμ„œμ— μ„€λͺ…λœ λŒ€λ‘œ λ…Έλ“œ 이미지 클래슀λ₯Ό μ‚¬μš©ν•˜λ„λ‘ ν•˜λŠ” 방법을 μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€. 읽어보기.
NS

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"κ°€ "Can't find variable: self" 였λ₯˜μ™€ ν•¨κ»˜ React Nativeμ—μ„œ 좩돌
1개의 λ¬Έμžμ—΄λ§Œ μ‚­μ œν•œ ν›„:
import * as Vibrant from 'node-vibrant';
앱이 μž‘λ™ν•˜λ―€λ‘œ React Nativeμ—μ„œ ν…ŒμŠ€νŠΈν•  κ°€λŠ₯μ„±μ‘°μ°¨ μ—†μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  14 λŒ“κΈ€

흠. λ‚˜λŠ” λ…Έλ“œ λͺ¨λ“ˆμ΄ λ°˜μ‘ λ„€μ΄ν‹°λΈŒμ—μ„œ μž‘λ™ν•˜κΈ°λ₯Ό κΈ°λŒ€ν•˜λŠ” 것에 λŒ€ν•΄ μˆœμ§„ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ‚˜λŠ”μ΄ νŠΉμ • λ¬Έμ œλŠ”μ΄ λ•Œλ¬Έμ— λ°˜μ‘ λ„€μ΄ν‹°λΈŒ 포μž₯κΈ° λͺ…μ˜ˆμ—κ²Œ λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ λ‚˜νƒ€λ‚¬μŠ΅λ‹ˆλ‹€ browser μ—μ„œ ν•„λ“œλ₯Ό package.json λΈŒλΌμš°μ € 버전 λŒ€μ‹  λ…Έλ“œ λ²„μ „μ˜λ‘œλ“œλ˜λ„λ‘. node-vibrant/lib/index μš”κ΅¬ν•˜λ©΄ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ§€λ§Œ λ‹€μŒ 였λ₯˜λŠ” Requiring unknown module 'fs'

@chetstone rn-nodeifyλ₯Ό μ‚¬μš©ν•΄ λ³΄μ…¨μŠ΅λ‹ˆκΉŒ ? μ½”μ–΄ λ…Έλ“œ λͺ¨λ“ˆμ€ μ‹€μ œλ‘œ λ…Έλ“œ(V8)μ—μ„œ μ‹€ν–‰λ˜μ§€ μ•Šκ³  JSCμ—μ„œ μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ— RN μ•±μ—μ„œ 기본적으둜 μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 방탄은 μ•„λ‹ˆμ§€λ§Œ 제 κ²½ν—˜μƒ ν•©λ¦¬μ μœΌλ‘œ 잘 λŒμ•„κ°‘λ‹ˆλ‹€.

즉, node-vibrant에 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 당신도 그것을 μ‹œλ„ν•˜κ³  당신이 μ–΄λ””λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆκΉŒ? fs μ—λŠ” λ¬Έμ œκ°€ μ—†μ§€λ§Œ pngjs λ˜λŠ” stream-to λͺ¨λ“ˆμ—μ„œ stream 에 λŒ€ν•œ rn-nodeify 핡은 μΆ”κ°€λ˜μ§€ μ•Šκ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ‹€λ§Œ 직감일 λΏμž…λ‹ˆλ‹€.

νŽΈμ§‘: 이것은 pngjs와 κ΄€λ ¨λœ 경우 관련이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€: https://github.com/lukeapage/pngjs/issues/64

(참고둜)

β”œβ”€β”¬ [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은 ν•œ 번 React Native둜 μž‘μ—…ν•œ node-vibrantλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.
λ‚˜λŠ” 아직 React Nativeλ₯Ό μ‹œλ„ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.κ·ΈλŸ¬λ‚˜ 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λ₯Ό μ„€μ •ν•˜κ³  λͺ‡ 가지 ν…ŒμŠ€νŠΈλ₯Ό ν•  κ²ƒμž…λ‹ˆλ‹€.

@stovmascript rn-nodeify에 λŒ€ν•΄ React-Nativify λ₯Ό μ°Ύμ•˜μ§€λ§Œ μ‹œλ„ν•΄ λ³Ό μ‹œκ°„μ΄ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ λ‹€λ₯Έ ν”„λ‘œμ νŠΈλ₯Ό 진행 μ€‘μ΄μ§€λ§Œ λ‹€μŒ 주에 κ²€ν† ν•  μ˜ˆμ •μž…λ‹ˆλ‹€.

@chetstone Cool,

rn-nodeifyλ₯Ό μ‚¬μš©ν•˜λ©΄ 거의 λͺ¨λ“  것이 μ•Œμ•„μ„œ μ²˜λ¦¬λ©λ‹ˆλ‹€. μƒˆ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•œ 후에 μ„€μΉ˜ ν›„ 슀크립트λ₯Ό μ‹€ν–‰ν•˜λŠ” κ²ƒλ§Œ κΈ°μ–΅ν•˜λ©΄ λ©λ‹ˆλ‹€(예: npm install 후에 μ‹€ν–‰λ˜μ§€λ§Œ npm install some-package --save ν›„μ—λŠ” μ‹€ν–‰λ˜μ§€ μ•ŠμŒ). 그닀지 μ˜ˆμ˜μ§€ μ•Šμ€ 점은 rn-nodeifyκ°€ μ™„λ£Œλ˜κΈ° 전후에 package.json을 μ €μž₯ν•˜κ³  λ³΅μ›ν•˜μ§€ μ•ŠλŠ” ν•œ λ§Žμ€ ν•­λͺ©μ΄ μΆ”κ°€λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. . λ˜ν•œ node_modules둜 μ΄λ™ν•˜μ—¬ 직접 엉망이 되기 μ‹œμž‘ν•©λ‹ˆλ‹€. λ°˜λ©΄μ— 아무 것도 μ†μƒμ‹œν‚€μ§€ μ•ŠμœΌλ©΄ λˆ„κ°€ μƒκ΄€ν•˜μ§€ μ•Šκ³  gitignoredλ˜λŠ” κ²ƒμž…λ‹ˆκΉŒ? λ‚˜λŠ” μ§€κΈˆκΉŒμ§€ 이 μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•΄ μ™”μœΌλ©° λ§Œμ‘±ν•©λ‹ˆλ‹€.

ReactNativity μ†”λ£¨μ…˜μ€ RN Packager에 κ³ μœ ν•œ λ²ˆλ“€ λ³€ν™˜κΈ° κΈ°λŠ₯을 μ œκ³΅ν•  수 있고 babel-plugin-rewrite-requireλ₯Ό μ‚¬μš©ν•˜μ—¬ require() 호좜 λ˜λŠ” import 을 λ³€κ²½ν•  수 μžˆλ‹€λŠ” μ μ—μ„œ IMO보닀 더 μš°μ•„ν•©λ‹ˆλ‹€. 컴파일 쀑 λΈŒλΌμš°μ € 버전에 λŒ€ν•œ 핡심 λ…Έλ“œ λͺ¨λ“ˆμ˜ process λ˜λŠ” __dirname 와 같은 λ…Έλ“œ 전역도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€. rn-nodeifyλŠ” 이에 λŒ€ν•΄ μƒλ‹Ήνžˆ κ΄‘λ²”μœ„ν•œ shim을 μ œκ³΅ν•˜μ§€λ§Œ ReactNativity 방식을 μ‚¬μš©ν•˜λ©΄ μžμ‹ μ˜ shim을 μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

두 가지 방법을 λͺ¨λ‘ μ‚¬μš©ν•˜μ—¬ λ™μΌν•œ 지점에 λ„λ‹¬ν–ˆμŠ΅λ‹ˆλ‹€.


λ‹€μŒκ³Ό 같이 κ°€μ Έμ˜¨ ν›„:

import Vibrant from 'node-vibrant/lib';

이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

개체 ν”„λ‘œν† νƒ€μž…μ€ 개체 λ˜λŠ” null일 수 μžˆμŠ΅λ‹ˆλ‹€. μ •μ˜λ˜μ§€ μ•ŠμŒ

좜처: _node_modules/inherits/inherits_browser.js:5_ (상속 λͺ¨λ“ˆμ˜ λΈŒλΌμš°μ € 버전).

ν˜„μž¬ μ‚¬μš© 쀑인 λ…Έλ“œλ‘œ 이 ν•¨μˆ˜λ₯Ό μ—…λ°μ΄νŠΈν•˜λ©΄ μƒˆ μ‚¬μš©μž 지정 였λ₯˜κ°€ νŠΈλ¦¬κ±°λ©λ‹ˆλ‹€.

"상속"ν•  슈퍼 μƒμ„±μžλŠ” ν”„λ‘œν† νƒ€μž…μ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

이 ν•¨μˆ˜μ— μ „λ‹¬λ˜μ–΄μ•Ό ν•˜λŠ” 수퍼 μƒμ„±μžκ°€ μƒμ„±μžκ°€ μ•„λ‹ˆλΌ μ‹€μ œλ‘œ μΈμŠ€ν„΄μŠ€ν™”λœ 클래슀이기 λ•Œλ¬Έμ— λ°œμƒν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ superCtor λ₯Ό superCtor = superCtor.constructor 둜 λ³€κ²½ν•˜λ©΄ μž‘λ™ν•©λ‹ˆλ‹€.

stacktraceλ₯Ό 따라 κ°€λ©΄ jimpκ°€ μ‚¬μš©ν•˜λŠ” μš”μ²­ νŒ¨ν‚€μ§€λ‘œ μ΄μ–΄μ§€μ§€λ§Œ μš”μ²­ λ¬Έμ œμΈμ§€ jimpκ°€ μš”μ²­μ„ μ˜¬λ°”λ₯΄κ²Œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. λ…Έλ“œμ—μ„œ 잘 μž‘λ™ν•  κ°€λŠ₯성이 λ†’μ§€λ§Œ λΈŒλΌμš°μ €μ— λ²ˆλ“€λ‘œ μ œκ³΅λ˜κ±°λ‚˜ λ°˜μ‘ λ„€μ΄ν‹°λΈŒ μ§μˆ˜μ— λŒ€ν•΄μ„œλ§Œ μ€‘λ‹¨λ©λ‹ˆλ‹€.

κΌΌκΌΌν•œ 제보 정말 κ°μ‚¬ν•©λ‹ˆλ‹€. λ”°λΌμ„œ _inherits_에 λŒ€ν•œ μˆ˜μ • μ‚¬ν•­μœΌλ‘œ RNκ³Ό ν•¨κ»˜ λ…Έλ“œ ν™œκΈ°μ°¬ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ°μ— μΆ©λΆ„ν•©λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ μ—¬μ „νžˆ λ§‰ν˜€ μžˆμŠ΅λ‹ˆκΉŒ?

2016λ…„ 11μ›” 6일 07:24 -0700에 Martin Ε Ε₯ovíček [email protected] 은 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

@chetstone (https://github.com/chetstone) ReactNativity에 λŒ€ν•΄ μ•Œλ €μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. 방금 μ‚¬μš©ν•΄λ³΄κ³  더 λ§ˆμŒμ— λ“­λ‹ˆλ‹€. ν•˜μ§€λ§Œ μž₯단점이 μžˆμŠ΅λ‹ˆλ‹€.

rn-nodeifyλ₯Ό μ‚¬μš©ν•˜λ©΄ 거의 λͺ¨λ“  것이 μ•Œμ•„μ„œ μ²˜λ¦¬λ©λ‹ˆλ‹€. μƒˆ νŒ¨ν‚€μ§€λ₯Ό μ„€μΉ˜ν•œ 후에 μ„€μΉ˜ ν›„ 슀크립트λ₯Ό μ‹€ν–‰ν•˜λŠ” κ²ƒλ§Œ κΈ°μ–΅ν•˜λ©΄ λ©λ‹ˆλ‹€(즉, npm μ„€μΉ˜ 후에 μ‹€ν–‰λ˜μ§€λ§Œ npm install some-package --save ν›„μ—λŠ” μ‹€ν–‰λ˜μ§€ μ•ŠμŒ). 그닀지 μ˜ˆμ˜μ§€ μ•Šμ€ 점은 rn-nodeifyκ°€ μ™„λ£Œλ˜κΈ° 전후에 package.json을 μ €μž₯ν•˜κ³  λ³΅μ›ν•˜μ§€ μ•ŠλŠ” ν•œ λ§Žμ€ ν•­λͺ©μ΄ μΆ”κ°€λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. . λ˜ν•œ node_modules둜 μ΄λ™ν•˜μ—¬ 직접 엉망이 되기 μ‹œμž‘ν•©λ‹ˆλ‹€. λ°˜λ©΄μ— 아무 것도 μ†μƒμ‹œν‚€μ§€ μ•ŠμœΌλ©΄ λˆ„κ°€ μƒκ΄€ν•˜μ§€ μ•Šκ³  gitignoredλ˜λŠ” κ²ƒμž…λ‹ˆκΉŒ? λ‚˜λŠ” μ§€κΈˆκΉŒμ§€ 이 μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•΄ μ™”μœΌλ©° λ§Œμ‘±ν•©λ‹ˆλ‹€.

ReactNativity μ†”λ£¨μ…˜μ€ RN Packager에 κ³ μœ ν•œ λ²ˆλ“€ λ³€ν™˜κΈ° κΈ°λŠ₯을 μ œκ³΅ν•  수 있고 babel-plugin-rewrite-requireλ₯Ό μ‚¬μš©ν•˜μ—¬ μ½”μ–΄ λ…Έλ“œ λͺ¨λ“ˆμ˜ require() 호좜 λ˜λŠ” κ°€μ Έμ˜€κΈ°λ₯Ό λ‹€μŒμœΌλ‘œ λ³€κ²½ν•  수 μžˆλ‹€λŠ” μ μ—μ„œ IMO보닀 더 μš°μ•„ν•©λ‹ˆλ‹€. μ»΄νŒŒμΌν•˜λŠ” λ™μ•ˆ λΈŒλΌμš°μ € 버전. λ˜ν•œ 쒅속성을 훨씬 더 많이 μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. node-libs-browser λ˜λŠ” browserifyλ₯Ό μ‚¬μš©ν•˜μ—¬ λͺ¨λ“  λΈŒλΌμš°μ € 버전을 ν•œ λ²ˆμ— μ„€μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€(λ‘˜ λͺ¨λ‘ babel ν”ŒλŸ¬κ·ΈμΈμ„ κ΅¬μ„±ν•˜λŠ” 데 ν•„μš”ν•œ λΈŒλΌμš°μ € 버전에 λŒ€ν•œ 맀핑이 μžˆλŠ” 개체λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. ). κ·Έ μœ„μ— fs λͺ¨λ“ˆμ— λŒ€ν•΄ react-native-level-fs와 같은 νŒ¨ν‚€μ§€λ₯Ό μ„ νƒμ μœΌλ‘œ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λŸ°νƒ€μž„ μ˜ˆμ™Έκ°€ λ°œμƒν•˜κΈ° 쉽기 λ•Œλ¬Έμ— 이 μ†”λ£¨μ…˜μ„ μ‚¬μš©ν•˜μ—¬ 앱을 μ² μ €νžˆ ν…ŒμŠ€νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€. λͺ¨λ“  핡심 λ…Έλ“œ λΌμ΄λΈŒλŸ¬λ¦¬μ— λΈŒλΌμš°μ € λŒ€μ‘ κΈ°λŠ₯이 μžˆλŠ” 것은 μ•„λ‹ˆλ©° rn-nodeifyλŠ” 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ 더 λ‚˜μ•„κ°‘λ‹ˆλ‹€. ν”„λ‘œμ„ΈμŠ€ λ˜λŠ” __dirnameκ³Ό 같은 λ…Έλ“œ 전역에도 λ™μΌν•˜κ²Œ μ μš©λ©λ‹ˆλ‹€. rn-nodeifyλŠ” 이에 λŒ€ν•΄ μƒλ‹Ήνžˆ κ΄‘λ²”μœ„ν•œ shim을 μ œκ³΅ν•˜μ§€λ§Œ ReactNativity 방식을 μ‚¬μš©ν•˜λ©΄ μžμ‹ μ˜ shim을 μœ μ§€ 관리해야 ν•©λ‹ˆλ‹€.

두 가지 방법을 λͺ¨λ‘ μ‚¬μš©ν•˜μ—¬ λ™μΌν•œ 지점에 λ„λ‹¬ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒκ³Ό 같이 κ°€μ Έμ˜¨ ν›„:

'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) to: superCtor = superCtor.constructor, μž‘λ™ν•©λ‹ˆλ‹€.

stacktraceλ₯Ό 따라 κ°€λ©΄ jimpκ°€ μ‚¬μš©ν•˜λŠ” μš”μ²­ νŒ¨ν‚€μ§€λ‘œ μ΄μ–΄μ§€μ§€λ§Œ μš”μ²­ λ¬Έμ œμΈμ§€ jimpκ°€ μš”μ²­μ„ μ˜¬λ°”λ₯΄κ²Œ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”μ§€ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. λ…Έλ“œμ—μ„œ 잘 μž‘λ™ν•  κ°€λŠ₯성이 λ†’μ§€λ§Œ λΈŒλΌμš°μ €μ— λ²ˆλ“€λ‘œ μ œκ³΅λ˜κ±°λ‚˜ λ°˜μ‘ λ„€μ΄ν‹°λΈŒ μ§μˆ˜μ— λŒ€ν•΄μ„œλ§Œ μ€‘λ‹¨λ©λ‹ˆλ‹€.

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ 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 λͺ¨λ“ˆμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. 더 μ΄μƒν•˜κ²Œλ„ 일뢀 λͺ¨λ“ˆ( png.js )μ—μ„œλŠ” ν•„μš”ν•  λ•Œ util 찾을 수 μžˆμ§€λ§Œ λ‹€λ₯Έ λͺ¨λ“ˆμ—μ„œλŠ” 찾을 _stream_readable ).

μ£Όμ„μ˜ μš”κ΅¬ util μ—μ„œ _stream_readable λ‚΄κ°€ 더 얻을 수 μžˆλ‹€λ©΄, 그것은 μ‹€νŒ¨λ₯Ό μ°Έμ‘°ν•˜λŠ” 경우 jimp 에 μ •μ˜λ˜μ§€ μ•Šμ€ λ³€μˆ˜λΌκ³  process ν‹ˆ λ©”μš°λŠ” λ‚˜λ¬΄.

λ§ˆμ§€λ§‰μœΌλ‘œ 이 기사λ₯Ό 읽은 ν›„ 이 μ ‘κ·Ό 방식을 포기할 μ€€λΉ„κ°€ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” rn-nodify μ‹œλ„ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ κ·€ν•˜μ˜ κ²½ν—˜μ„ κ°μ•ˆν•  λ•Œ 더 λ§Žμ€ μ‹œκ°„μ„ λ‚­λΉ„ν•˜κ²Œ 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

μ‹€μ œ νŒ”λ ˆνŠΈ 라이브러리 μ£Όμœ„μ— Android용 κΈ°λ³Έ 래퍼λ₯Ό λΉŒλ“œν•˜λŠ” 것이 훨씬 더 간단해 λ³΄μž…λ‹ˆλ‹€. λ‚˜λŠ” μžλ°”λ₯Ό λͺ¨λ₯΄μ§€λ§Œ μ•„λ§ˆλ„ 배울 μ‹œκ°„μž…λ‹ˆλ‹€. iOSμ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•Šμ§€λ§Œ iOS μ•±μ—μ„œ colorgrabber ꡬ성 μš”μ†Œλ₯Ό

μš°μˆ˜ν•œ Android Palette 클래슀λ₯Ό κΈ°λ³Έ λͺ¨λ“ˆλ‘œ λž˜ν•‘ν•˜λŠ” react-native-palette λ₯Ό 방금 κ²Œμ‹œν–ˆμŠ΅λ‹ˆλ‹€. 이 ꡬ성 μš”μ†ŒλŠ” iOSμ—μ„œλ„ μœ μ‚¬ν•œ κΈ°λŠ₯을 μ§€μ›ν•˜μ§€λ§Œ λͺ‡ 가지 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

κΈ°λ³Έ 지원이 λ‹€μ†Œ λΆ€μ‘±ν•˜κΈ° λ•Œλ¬Έμ— iOSμ—μ„œ μž‘λ™ν•˜λŠ” node-vibrant와 같은 javascript μ „μš© μ†”λ£¨μ…˜λ„ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.

였래 μ§€μ—°λ˜μ–΄ μ£„μ†‘ν•©λ‹ˆλ‹€. μ‹€μ œ μƒν™œμ΄ μΌμ–΄λ‚¬μŠ΅λ‹ˆλ‹€.
μœ„μ˜ μ˜κ²¬μ—μ„œ λ‚΄κ°€ μ΄ν•΄ν•œ λ°”λ‘œλŠ” jimp fs λŒ€ν•œ jimp 참쑰와 κ΄€λ ¨λœ κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€. μ΄λŠ” 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"κ°€ "Can't find variable: self" 였λ₯˜μ™€ ν•¨κ»˜ React Nativeμ—μ„œ 좩돌
1개의 λ¬Έμžμ—΄λ§Œ μ‚­μ œν•œ ν›„:
import * as Vibrant from 'node-vibrant';
앱이 μž‘λ™ν•˜λ―€λ‘œ React Nativeμ—μ„œ ν…ŒμŠ€νŠΈν•  κ°€λŠ₯μ„±μ‘°μ°¨ μ—†μŠ΅λ‹ˆλ‹€.

μ΅œμ‹  버전 "3.2.0-alpha"κ°€ _"Can't find variable: self"_ 였λ₯˜μ™€ ν•¨κ»˜ React Nativeμ—μ„œ μΆ©λŒν•©λ‹ˆλ‹€.
1개의 λ¬Έμžμ—΄λ§Œ μ‚­μ œν•œ ν›„:
import * as Vibrant from 'node-vibrant';
앱이 μž‘λ™ν•˜λ―€λ‘œ React Nativeμ—μ„œ ν…ŒμŠ€νŠΈν•  κ°€λŠ₯μ„±μ‘°μ°¨ μ—†μŠ΅λ‹ˆλ‹€.

μ£„μ†‘ν•©λ‹ˆλ‹€. 정말 이해가 μ•ˆ κ°‘λ‹ˆλ‹€. node-vibrant libκ°€ RNκ³Ό ν•¨κ»˜ μž‘λ™ν•©λ‹ˆκΉŒ?

@Psiiirus λΉ„μ•ŒνŒŒ λΉŒλ“œμ—μ„œ μž‘λ™ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ°˜μ‘ λ„€μ΄ν‹°λΈŒμ—μ„œ Can't find variable: document λ₯Ό λ°›κ³  μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

eggers picture eggers  Β·  3μ½”λ©˜νŠΈ

lucafaggianelli picture lucafaggianelli  Β·  9μ½”λ©˜νŠΈ

daviestar picture daviestar  Β·  9μ½”λ©˜νŠΈ

glomotion picture glomotion  Β·  5μ½”λ©˜νŠΈ

amirping picture amirping  Β·  6μ½”λ©˜νŠΈ