我目前正在通过提供的自动 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 库是否在 socket.io npm 包中可用,以便我可以将其作为文件路径包含?我还尝试通过 bower 安装 socket.io 客户端库,然后包含它,但这无法正常工作。
详细讨论可以在这里找到:
https://github.com/dbashford/mimosa/issues/338#issuecomment-31974008
总结:
问题在于 npm 和 bower 版本的 socket.io 是不同的;导致奇怪的问题。
不是一个理想的解决方案,但它目前有效:
我仍然希望有一种方法可以获取 socket.io 在/socket.io/socket.io 自动提供的文件 - 我的意思是它必须存在于 node_modules/socket.io 文件夹中的某个地方。