Javascript web worker中的RequireJS

Javascript web worker中的RequireJS,javascript,requirejs,web-worker,Javascript,Requirejs,Web Worker,我正在尝试在web worker中使用RequireJS。问题是,在使用它时,我一直会遇到以下错误未捕获错误:在./lib/underline.js处,下划线的importScripts失败 我已经测试了配置选项,它们只在导入下划线时导致此错误。这是: { baseUrl: './', paths: { jquery: 'lib/jquery', underscore: 'lib/underscore' }, shim: {

我正在尝试在web worker中使用RequireJS。问题是,在使用它时,我一直会遇到以下错误<代码>未捕获错误:在./lib/underline.js处,下划线的importScripts失败

我已经测试了配置选项,它们只在导入下划线时导致此错误。这是:

{
    baseUrl: './',
    paths: {
        jquery: 'lib/jquery',
        underscore: 'lib/underscore'
    },
    shim: {
        underscore: {
            exports: '_'
        }
    }
}
如有必要,我可以添加更多信息。此项目的源代码位于GitHub上

更新:在修复RequireJS方面仍然不走运,但我使用Grunt任务修复了我的问题。以下是配置:

requirejs: {
    worker: {
            options: {
                baseUrl: 'js',
                name: 'task',
                out: 'build/task.js',
                paths: {
                    jquery: 'lib/jquery',
                    underscore: 'lib/underscore'
                },
                shim: {
                    underscore: {
                        exports: '_'
                    }
                },
                include: ['lib/require.js'],
                optimize: 'none'
            }
     }
}

您是否使用
importScripts
require
正确加载到工人中

importScripts('path/to/require.js');

require({ ... });
这是一个很好的例子,也可以在中看到Chad的答案

网络工作者有一个共同的目标。问题很可能是因为直到1.6.0版(在你发布问题后)才使用AMD

我强烈建议您使用本杰明对原始问题的评论所建议的
importScripts()
()

有关标准定义,请访问


确保
require
适用于不同平台的
webWorkers
中的所有LIB所带来的麻烦是不值得的,而且从性能角度看,它不会受到任何影响,因为工作人员不会影响主应用程序的性能。

Web workers相当封闭;您不能从它们访问窗口,也不能向文档添加脚本,也不能执行XHR。请使用browserify而不是require。js@minitech“我想他想给工人加载更多的脚本。”本贾明鲁恩鲍姆:是的,这就是我要找的for@isaach1000Worker有一个同步运行的
importScripts
方法<代码>importScripts('foo.js','bar.js')-导入
foo.js
bar.js
。我认为
Require
根本不能使用它,您可以为它编写一个包装器(应该不难),或者在部署时使用诸如browserify或r.js之类的工具来缩小脚本并将其捆绑在一起。