2017-05-24 10 views
0

나는 2 일 동안이 문제에 봉착했으며이 질문에 대한 답을 찾지 못했습니다.근로자 내에서 Immutable.js를 가져 오거나 사용하는 방법

내 React, Redux 앱에서 모든 개체 조작에 immutable.js을 사용하고 있습니다. 일부 계산을 수행하려면 웹 작업자가 필요합니다. & 작업을 middleware으로 보내고 파견하십시오.

Worker.js 브라우저에 의해보고

self.importScripts("../../node_modules/immutable/dist/immutable.js"); 

오류 : NetworkError: Failed to load worker script at ../../node_modules/immutable/dist/immutable.js (nsresult = 0x804b001d)

가 어떻게 어떻게 웹 근로자 파일 &에 immutable.js를 가져 옵니까이 구문을 사용

오류를 가져옵니다 내가 사용할 게? 분명히 다음은 es6import 구문이 작동하지 않습니다.

은 작동하지 않을 것입니다 :

import { Map, List } from "immutable"; 

답변

0

importScripts()는 브라우저의 환경에서 외부 서비스에서 스크립트 파일을 가져 - 당신이 당신의 node_modules을 가져올 수 있도록 브라우저, 노드 모듈에 액세스 할 수 없습니다 .

대신 CDNJS과 같이 CDN에서 변경 불가능 항목을 가져 오십시오.

self.importScripts("https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.min.js"); 
var map1 = Immutable.Map({a:1, b:2, c:3}); 
var map2 = map1.set('b', 50); 
map1.get('b'); // 2 
map2.get('b'); // 50 
+1

이에 대한 대안은 웹팩 먼저 웹 작업자 JS 파일에 불변 묶고 self.importScripts' '의 필요성을 생략하지만 내가 줄 수 있음을 해본 적이 데 같은 JS 들러를 사용하는 것 당신은 그것을 demoing 해답입니다. – MunkyJunky

+0

감사합니다. 이 importScripts는 나를 위해 작동하지 않습니다. '불변은 정의되지 않았습니다. '오류를 얻습니다. – Kayote

+0

사과드립니다. 당신 말이 맞습니다. 그러나 라이브러리는 다음과 같이 참조됩니다 :'self.Immutable.Map ({a : 1, b : 2, c : 3}); – Kayote