如何在Worker中导入/使用Immutable.js

时间:2017-05-24 12:46:37

标签: javascript ecmascript-6 web-worker 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导入网络工作者文件&我该如何使用它?显然,以下es6 import语法不起作用。

不起作用:

import { Map, List } from "immutable";

1 个答案:

答案 0 :(得分:0)

importScripts()在浏览器的上下文中从外部服务导入脚本文件 - 浏览器无法访问节点模块,因此您无法在那里导入node_modules。

而是尝试从CDN导入Immutable,例如CDNJS

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