我正在尝试在我的angular 2应用程序中使用socket.io客户端并安装它和打字
我只是从'socket.io-client'导入;
但不知怎的,我从中得到了很多错误:
我可以在我的index.html中使用lib,如果我从cdn加载脚本并将init代码放在<script>标签中但我不能在我的实际angular 2应用程序中使用它.
我在这做错了什么?
这是我的样板:https://github.com/mgechev/angular2-seed
socket.io的例子似乎已经过时了,这就是我避免它们的原因.
这就是我正在做的并且已经得到了这些错误:
import * as io from 'socket.io-client';
[...]
var socket = io('127.0.0.1');
Run Code Online (Sandbox Code Playgroud)
所以这个问题似乎与SystemJS有关.这个https://github.com/mgechev/angular2-seed/wiki/Add-external-dependency建议我可以添加socket.io-client,它应该自动添加所有依赖项,但这似乎并非如此.
我已经尝试了完整的例子,但这也无济于事.
angular-cli: 0.0.39
node: 6.2.2
os: win32 x64
Run Code Online (Sandbox Code Playgroud)
我试图将socket.io-client导入到使用angular-cli生成的angular2应用程序中,但我无法让它工作.
chat.component.ts
import * as io from "socket.io-client";
@Component({
...
})
export class ChatAppComponent {
...
}
Run Code Online (Sandbox Code Playgroud)
系统config.ts
/** Map relative paths to URLs. */
const map: any = {
"socket.io-client": "vendor/socket.io-client/socket.io.js"
};
/** User packages configuration. */
const packages: any = {
"socket.io-client": {"defaultExtension": "js"}
};
Run Code Online (Sandbox Code Playgroud)
角-CLI-build.js
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
'systemjs/dist/system-polyfills.js',
'systemjs/dist/system.src.js',
'zone.js/dist/*.js',
'es6-shim/es6-shim.js',
'reflect-metadata/*.js',
'rxjs/**/*.js',
'@angular/**/*.js', …Run Code Online (Sandbox Code Playgroud)