【问题标题】:load socket.io with Angular 2 AOT使用 Angular 2 AOT 加载 socket.io
【发布时间】:2017-06-07 12:59:08
【问题描述】:

我在 angular2 中使用 socket.io 创建了一个项目来发出/监听套接字通信。在 JIT(或 npm start)中一切正常,但是当我尝试通过汇总编译代码以将其作为 AOT 用于生产使用时,它不起作用。

节点版本:6.9.4 npm 版本:3.10.6

typings.json

    {
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160725163759",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#7.0.0+20170110233017",
    "socket.io-client": "registry:dt/socket.io-client#1.4.4+20161116080703"
  },
  "ambientDependencies": {
    "node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#138ad74b9e8e6c08af7633964962835add4c91e2",
    "socket-io-client": "github:DefinitelyTyped/DefinitelyTyped/socket.io-client/socket.io-client.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "es6-shim": "registry:dt/es6-shim#0.31.2+20160317120654"
  }
}

systemjs.config.js

map : {"socket.io-client": 'npm:socket.io-client'}
packages : { "socket.io-client": {
            main: './socket.io.js',
            "defaultExtension": "js"
        } }

package.json : "socket.io-client": "^1.7.2"

我的组件.ts

import * as io from 'socket.io-client';
var url = 'http://localhost:4500';
export var socket = io(url);

"node_modules/.bin/ngc" -p tsconfig-aot.json 执行成功但是 "node_modules/.bin/rollup" -c rollup-config.js 给出错误:cannot call a namespace ('io')

如果我更改我的组件导入行并设置import io from socket.io-client,那么我会收到错误module 'socket.io-client' has no default export

如果有人能指导我完成,我将不胜感激,因为这是我在其他论坛进行故障排除和尝试的第二天。

提前致谢, 卡皮尔

【问题讨论】:

    标签: angularjs sockets angular2-aot rollupjs


    【解决方案1】:

    继续导入:

    import * as io from 'socket.io-client';
    

    并将插件添加到 rollup.js:

    {
        name: 'replace io imports',
        transform: code => ({
            code: code.replace(/import\s*\*\s*as\s*io/g, 'import io'),
            map: { mappings: '' }
        })
    },
    

    【讨论】:

      猜你喜欢
      • 2017-05-16
      • 2017-06-18
      • 2017-07-27
      • 1970-01-01
      • 2017-11-12
      • 2017-05-12
      • 2017-02-18
      • 2017-04-28
      • 2017-04-23
      相关资源
      最近更新 更多