Javascript web worker中的RequireJS
我正在尝试在web worker中使用RequireJS。问题是,在使用它时,我一直会遇到以下错误<代码>未捕获错误:在./lib/underline.js处,下划线的importScripts失败 我已经测试了配置选项,它们只在导入下划线时导致此错误。这是: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: {
{
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之类的工具来缩小脚本并将其捆绑在一起。