我目前正在通过提供的自动URL加载socket.io客户端库:
requirejs.config({
urlArgs: "b=" + ((new Date()).getTime()),
baseURL: "/javascripts/",
paths: {
/*other libaries here*/
io: "/socket.io/socket.io"
},
shim: {
"io" : {exports: "io"}
}
});
这可行,但不使用含羞草的缩小功能,因为它无法找到本地文件。它还在启动时给我一个恼人的错误。
2:37:34 - Dependency [[ /socket.io/socket.io ]] for path alias [[ io ]], inside file [[ dr/public/javascripts/common.js ]], cannot be found.
12:37:34 - Dependency [[ io ]], inside file [[ dr/public/javascripts/app.rq.js ]], cannot be found.
12:37:34 - Shim path [[ io ]] inside file [[ dr/public/javascripts/common.js ]] cannot be found.
socket.io.js libary是否在socket.io npm包中可用,所以我可以将它作为文件路径包含在内?我还尝试通过bower安装socket.io客户端库,然后包含它,但是这样做不正常。
答案 0 :(得分:1)
详细讨论可以在这里找到:
https://github.com/dbashford/mimosa/issues/338#issuecomment-31974008
总结:
问题是socket.io的npm和bower版本不同;造成奇怪的问题。
不是理想的解决方案,但它现在有效:
我仍然希望有一种方法可以获取socket.io自动在/socket.io/socket.io中提供的文件 - 我的意思是它必须存在于node_modules / socket.io文件夹中的某个位置。