Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将socket.io-client与Web包绑定?_Socket.io_Angular_Webpack - Fatal编程技术网

如何将socket.io-client与Web包绑定?

如何将socket.io-client与Web包绑定?,socket.io,angular,webpack,Socket.io,Angular,Webpack,我是webpack新手,在将socket.io-client与webpack绑定时遇到问题。有人能告诉我我做错了什么吗 我使用的是Angular 2 RC.1 package.json ...."dependencies": { "@angular/http": "2.0.0-rc.1", "@angular/common": "2.0.0-rc.1", "@angular/compiler": "2.0.0-rc.1", "@angular/core": "2.0.0-rc.1", "@ang

我是webpack新手,在将socket.io-client与webpack绑定时遇到问题。有人能告诉我我做错了什么吗

我使用的是Angular 2 RC.1

package.json

...."dependencies": {
"@angular/http": "2.0.0-rc.1",
"@angular/common": "2.0.0-rc.1",
"@angular/compiler": "2.0.0-rc.1",
"@angular/core": "2.0.0-rc.1",
"@angular/platform-browser": "2.0.0-rc.1",
"@angular/platform-browser-dynamic": "2.0.0-rc.1",
"@angular/platform-server": "2.0.0-rc.1",
"@angular/router": "2.0.0-rc.1",
"@angular/router-deprecated": "2.0.0-rc.1",
"core-js": "^2.3.0",
"rxjs": "5.0.0-beta.7",
"zone.js": "~0.6.12",
"socket.io": "^1.4.6"
}....
typings.json

  ...."ambientDependencies": {
"socket.io-client": "registry:dt/socket.io-client#1.4.4+20160317120654",....
插座

import {Component} from '@angular/core';
require ('socket.io-client/socket.io');

@Component({
    selector: 'socket',
    templateUrl: 'app/components/socket/socket.html',
    styleUrls: ['app/components/socket/socket.css'],
})
export class SocketTest {
socket = null;

constructor() {
    this.socket = io('http://localhost:3001');
  ....
错误:

    ./~/socket.io-client/socket.io.js
Critical dependencies:
1:475-482 This seems to be a pre-built javascript file. Though this is     possible, it's not recommended. Try to require the original source to get better     results.
 @ ./~/socket.io-client/socket.io.js 1:475-482
browser_adapter.js:86 EXCEPTION: Error: Uncaught (in promise): EXCEPTION:     Error in :0:0
ORIGINAL EXCEPTION: ReferenceError: io is not defined
ORIGINAL STACKTRACE:
ReferenceError: io is not defined....

在webpack.config.js中,添加socket.js作为外部库,这样它就不会与其他javascript一起打包

当然,您需要将这些设置与角度设置合并

external:{
    ...
    'socket.io-client':'io'
}

resolve: {
    alias: {
        ...
        'socket.io-client': path.join( __dirname, 'node_modules', 'socket.io-client', 'socket.io.js' )
    }
},
module: {
    ...
    noParse: [ /socket.io-client/ ]
}
然后在index.html中,包括

<script src="socket.io.js"></script>

另外,我自己还没有尝试过这些设置,我只是想至少让你走上正轨。

在你的webpack.config.js中,添加socket.js作为外部库,这样它就不会与你的其他javascript打包在一起

当然,您需要将这些设置与角度设置合并

external:{
    ...
    'socket.io-client':'io'
}

resolve: {
    alias: {
        ...
        'socket.io-client': path.join( __dirname, 'node_modules', 'socket.io-client', 'socket.io.js' )
    }
},
module: {
    ...
    noParse: [ /socket.io-client/ ]
}
然后在index.html中,包括

<script src="socket.io.js"></script>
另外,我自己还没有尝试过这些设置,我只是想至少让你走上正轨。

我相信“外部”=>“外部”有错我相信“外部”=>“外部”有错