Socket.io-client: Problemas de compilação do Webpack com 1.4.1

Criado em 7 jan. 2016  ·  57Comentários  ·  Fonte: socketio/socket.io-client

Com 1.4.1 estou vendo o seguinte problema do Webpack. Meu código não tem problemas com 1.4.0

WARNING in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js 10:19-44

ERROR in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js
Module not found: Error: Cannot resolve module 'tls' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js 15:10-24

ERROR in ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js
Module not found: Error: Cannot resolve module 'fs' in /u//WebStormProjects/myProject/node_modules/mySubApp/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws/node_modules/options/lib
 @ ./~/mySubApp/~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js 6:9-22

Comentários muito úteis

Os avisos desapareceram quando incluí

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

ao invés de

import * as io from "socket.io";

Mesmo assim, tenho o comportamento em # 1088. O aplicativo mínimo com bug está nesse tópico de problema.

_Editar: resolveu meu problema. Não foi por causa de socket.io._

Todos 57 comentários

+1

Eu recomendo por agora:

  module: {
    noParse: ['ws']
  },
  externals: ['ws']

até descobrirmos uma solução melhor

A razão é provavelmente que o pacote publicado no npm contém um arquivo webpack.config.js que não continha com <= 1.4.0. De onde isso está vindo, afinal? Não consigo ver no repo.

A compilação do Browserify também falha. Forçar o uso de 1.4.0 corrige o problema.

Publiquei acidentalmente esse arquivo. Eu estava experimentando sair do browserify.

1.4.3 out.

Nota para mim mesmo: deve definir explicitamente files em package.json

Ainda tendo os mesmos problemas com 1.4.3. Adicionando:

 module: {
    noParse: ['ws']
  },
  externals: ['ws']

Mas ajuda.

Ainda quebrado.

@Levino , acho que você terá que fazer o browserify ignorar / excluir ws, como aqui

Mas qualquer solução melhor do que esta solução alternativa será muito bem-vinda.

Eu apenas uso a versão "~ 1.3.7" em vez de "^ 1.3.7" em meus pacotes por enquanto.

Movido do servidor para este segmento do cliente socket.io.


Estava executando 1.3.7 e usei o npm para atualizar o socket.io-client para 1.4.3.

O aplicativo usa apenas o cliente socket.io para se conectar a um servidor de jogo (também atualizado para socket.io 1.4.3). Desenvolvendo no Windows 7.

Tentei desinstalar via npm e reinstalar. Não esperava ver avisos e erros de socket.io-client e engine.io-client ao iniciar o aplicativo.

Os módulos ausentes não deveriam fazer parte do pacote npm?

Avisos:

WARNING in ./~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-clie
nt\node_modules\ws\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-
client\node_modules\ws\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/lib/Validation.js 10:19-44

Erros:

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js
Module not found: Error: Cannot resolve module 'tls' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-client\node
_modules\ws\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js 15:10-24

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js
Module not found: Error: Cannot resolve module 'fs' in C:\Data\captchatheprize.com\dev\gamewww\node_modules\socket.io-client\node_modules\engine.io-client\node_
modules\ws\node_modules\options\lib
@ ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js 6:9-22

@ADumaine Você teve algum problema com 1.3.7? Se não, continue usando até que isso aqui seja resolvido.

@Levino No 1.3.7 não estava tendo problemas. 1.4.3 realmente funciona. Ele se conecta ao servidor e passa dados, mas ainda estou desenvolvendo localmente e não usando coisas como tls. Vou deixar em 1.4.3 por enquanto e testar todas as atualizações ou reverter se não houver nenhuma e estivermos prontos para o estágio.

Estamos publicando uma correção mais permanente hoje!

Excelente.

1.4.4 Corrige isso para mim. Obrigado!

1.4.4 consertou para mim também !. Npm usado com @latest. Servidor reiniciado e não houve avisos ou erros.
Obrigado!

ainda é um problema para mim, eu atualizei para um mais recente socket.io-client, ws e webpack, e recebo o seguinte

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /home/test/Projects/B_Components/node_modules/ws/lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /home/test/Projects/B_Components/node_modules/ws/lib
 @ ./~/ws/lib/Validation.js 10:19-44

WARNING in ./~/mymodule-services/~/sails.io.js/~/request/lib/optional.js
Critical dependencies:
3:11-26 the request of a dependency is an expression
 @ ./~/mymodule-services/~/sails.io.js/~/request/lib/optional.js 3:11-26
webpack: bundle is now VALID.

@mrvini quais são os passos para reproduzir por favor? Eu tenho o seguinte com socket. [email protected] :

damien<strong i="8">@home</strong>:~/git/socket.io-client$ webpack . bundle.js
Hash: 321bb2158ab30d957364
Version: webpack 1.12.11
Time: 685ms
    Asset    Size  Chunks             Chunk Names
bundle.js  195 kB       0  [emitted]  main
   [0] ./lib/index.js 1.66 kB {0} [built]
   [1] ./lib/url.js 1.61 kB {0} [built]
  [14] ./lib/manager.js 12 kB {0} [built]
  [43] ./lib/socket.js 7.54 kB {0} [built]
  [46] ./lib/on.js 370 bytes {0} [built]
    + 46 hidden modules

@globexdesigns @ADumaine : heart:

@darrachequesne , tenho a seguinte configuração
nó: v4.2.3

Eu tenho meu módulo local que usa bibliotecas sails.io.js e socket.io-client
sails.io.js: 0.12.2
socket.io-client: 1.4.4
Estou incluindo este módulo no aplicativo e executando o servidor webpack
webpack: 1.12.11
webpack-dev-server: 1.14.1

quando executo webpack .bundle.js, tudo parece bem, no entanto, quando tento executá-lo como servidor de desenvolvimento webpack, ocorre o erro que mencionei acima

@mrvini , desculpe, parece que não consigo reproduzir:

damien<strong i="7">@home</strong>:~/test$ npm install [email protected]
[email protected] node_modules/socket.io-client
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
damien<strong i="8">@home</strong>:~/test$ webpack-dev-server --port 9000
Hash: 396f0bfb9d565b6f60f0
Version: webpack 1.12.11
Time: 19ms
webpack: bundle is now VALID.
http://localhost:9000/webpack-dev-server/
webpack result is served from /
content is served from /home/damien/test

image

Estou faltando alguma coisa aqui?

Obrigado @darrachequesne por olhar para isso, certo, sails.io.js depende do cliente socket.io.js, mas apenas como dependências de desenvolvimento, eu acredito (principalmente depende da solicitação que produz o problema principal por algum motivo).

Critical dependencies:
3:11-26 the request of a dependency is an expression
 @ ./~/mymodule-services/~/sails.io.js/~/request/lib/optional.js 3:11-26

Para sua informação, o estranho é que com WS versão 0.8.1, parece funcionar

funciona de novo também, obrigado!

O mesmo aqui ... faltando muitas dependências ...

ERROR in ./~/sails.io.js/~/request/request.js
Module not foun @ ./~/sails.io.js/~/request/request.js 30:10-24

ERROR in ./~/sails.io.js/~/request/~/forever-agent/index.js
Module not found
 @ ./~/sails.io.js/~/request/~/forever-agent/index.js 6:10-24

ERROR in ./~/sails.io.js/~/request/~/forever-agent/index.js
Module not found: Error
 @ ./~/sails.io.js/~/request/~/forever-agent/index.js 7:10-24

ERROR in ./~/sails.io.js/~/request/~/mime/mime.js
Module not found
 @ ./~/sails.io.js/~/request/~/mime/mime.js 2:9-22

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js
Module not found
 @ ./~/socket.io-client/~/engine.io-client/~/ws/lib/WebSocketServer.js 15:10-24

ERROR in ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js
Module not found
 @ ./~/socket.io-client/~/engine.io-client/~/ws/~/options/lib/options.js 6:9-22

Ainda estou vendo isso:

[0] WARNING in ./~/sails.io.js/~/request/lib/optional.js
[0] Critical dependencies:
[0] 3:11-26 the request of a dependency is an expression
[0]  @ ./~/sails.io.js/~/request/lib/optional.js 3:11-26

Pacotes:

    "sails.io.js": "^0.13.3",
    "socket.io": "^1.4.4",
    "socket.io-client": "^1.4.4",

Também tentei esta configuração do webpack:

 module: {
    noParse: ['ws']
  },
  externals: ['ws']

+1

+1

+1

O:

module: {
  ....
    noParse: ['ws']
  },
  externals: ['ws']

não parece consertar. Agora o módulo ws está indefinido.

webpack version : 1.13.0
socket.io-client version : 1.4.4

Eu também tenho problemas desde a versão 1.4.x
Meu projeto de amostra é um aplicativo TODO simples com as seguintes versões:

  • NodeJS v5.8.0,
  • NPM v3.7.3,
  • RethinkDB v2.3.2,
  • RethinkDbDash v2.2.18,
  • Aurelia beta mais recente,
  • Socket.io v1.4.6,
  • Socket.io-client v1.4.6,
  • ws v1.1.0

Configuração do Webpack

  module: {
    noParse: ['ws']
  },
  node: {
    tls: "empty"
  },
  externals: ['fs','ws']

Ajuda a remover alguns dos erros e avisos, mas ainda recebo os seguintes avisos e erros.

WARNING in ./~/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

ERROR in ./~/socket.io-client/package.json
Module parse failed: C:\test\client\node_modules\socket.io-client\package.json Unexpected token (2:9)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:9)
    at Parser.pp.raise (C:\test\client\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\test\client\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\test\client\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\test\client\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\test\client\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\test\client\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\test\client\node_modules\acorn\dist\acorn.js:882:44)
 @ ./~/socket.io/lib/index.js 10:20-55

ERROR in ./~/accepts/~/mime-db/db.json
Module parse failed: C:\test\client\node_modules\accepts\node_modules\mime-db\db.json Unexpected token (2:40)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (2:40)
    at Parser.pp.raise (C:\test\client\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.unexpected (C:\test\client\node_modules\acorn\dist\acorn.js:1483:8)
    at Parser.pp.semicolon (C:\test\client\node_modules\acorn\dist\acorn.js:1462:73)
    at Parser.pp.parseExpressionStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1976:8)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1754:188)
    at Parser.pp.parseBlock (C:\test\client\node_modules\acorn\dist\acorn.js:1991:21)
    at Parser.pp.parseStatement (C:\test\client\node_modules\acorn\dist\acorn.js:1735:19)
    at Parser.pp.parseTopLevel (C:\test\client\node_modules\acorn\dist\acorn.js:1648:21)
    at Parser.parse (C:\test\client\node_modules\acorn\dist\acorn.js:1616:17)
    at Object.parse (C:\test\client\node_modules\acorn\dist\acorn.js:882:44)
 @ ./~/accepts/~/mime-db/index.js 11:17-37

Mas mesmo com os erros aparecendo, o projeto e o soquete ainda funcionam como pretendido com vários navegadores.

Também foi adicionado um Github TODO Sample se alguém quiser reproduzir os erros.

Estou tendo o mesmo problema com 1.4.6. e recebendo os mesmos erros de @ghiscoding. Eu adicionei noParse e externals conforme descrito acima no tópico. Tenho um aplicativo muito

As únicas dependências do aplicativo publicado são:

"socket.io": "^1.4.6",
"socket.io-client": "^1.4.6"

Para reproduzir os erros, baixe o repo, execute npm install seguida, execute npm prepublish

@dbslone obrigado. Devemos também ter um teste em CI que constrói o projeto com webpack para evitar problemas no futuro.

Mesmos avisos em Socket.IO 1.4.6, webpack 1.13.0.

WARNING in ./~/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

WARNING in ./~/express/lib/view.js
Critical dependencies:
78:29-56 the request of a dependency is an expression
 @ ./~/express/lib/view.js 78:29-56

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in /home/rbozan/Git/mooiboymmo/server/node_modules/ws/lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in /home/rbozan/Git/mooiboymmo/server/node_modules/ws/lib
 @ ./~/ws/lib/Validation.js 10:19-44
var webpack = require("webpack");

module.exports = {
    output: {
        filename: "server.min.js"
    },

    target: "node",

    module: {
        loaders: [
            { test: /\.json$/, loader: "json-loader" }
        ]
    }
};

Existe atualmente uma solução alternativa para isso? Tentei adicionar noParse e externals mas ainda vejo os erros acima. Usando socket.io 1.4.6, webpack 1.13.1

import io from 'socket.io-client/socket.io' parece funcionar para mim (ao contrário de import io from 'socket.io' )

Eu ainda consigo

WARNING in ./~/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.

mas ... pelo menos funciona

@WestleyArgentum Eu estava lutando com isso também, mas então li a seção de como usar no read me. contanto que você esteja usando o socket.io no seu servidor, você deve estar pronto para ir

Uma compilação autônoma de socket.io-client é exposta automaticamente pelo servidor socket.io como /socket.io/socket.io.js.

Eu adicionei <script type="text/javascript" charset="utf-8" src="/socket.io/socket.io.js"></script> ao cabeçalho do meu html e doc e ele expôs o io como um global, portanto, não há necessidade de importar.

Socket.IO: 1.4.6
Webpack: 1.13.0
Webpack tem 'nó' como destino na configuração.

WARNING in ./~/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

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Cannot resolve module 'bufferutil' in C:\maestro\frontend\node_modules\ws\lib
 @ ./~/ws/lib/BufferUtil.js 10:19-40

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Cannot resolve module 'utf-8-validate' in C:\maestro\frontend\node_modules\ws\lib
 @ ./~/ws/lib/Validation.js 10:19-44

Exatamente o mesmo problema que @omerts aqui ... Alguém encontrou uma solução?

Isso parece vagamente relacionado a solicitação / solicitação / problemas / 1529

Também obtendo isso com os pacotes websocket e ws .

Mesmo, recebendo este erro usando ws

Socket.IO: 1.7.3
Webpack: 2.2.1
Módulo não encontrado: Erro: Não é possível resolver 'socket.io-client / package'

@zweifisch , inclua o carregador json em sua configuração para resolver seu problema.

Ainda tenho "AVISO em ./~/engine.io/lib/server.js Dependência crítica: o pedido de uma dependência é uma expressão" e outra semelhante às das pessoas acima.

Eu uso o Angular2. Talvez a configuração ajude:

const path = require('path');
const ProgressPlugin = require('webpack/lib/ProgressPlugin');
const ProvidePlugin = require('webpack/lib/ProvidePlugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const autoprefixer = require('autoprefixer');
const postcssUrl = require('postcss-url');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

const { NoEmitOnErrorsPlugin, LoaderOptionsPlugin, WatchIgnorePlugin } = require('webpack');
const { BaseHrefWebpackPlugin } = require('@angular/cli/plugins/webpack');
const { CommonsChunkPlugin } = require('webpack').optimize;
const { AotPlugin } = require('@ngtools/webpack');

const nodeModules = path.join(process.cwd(), 'node_modules');
const entryPoints = ["inline","polyfills","sw-register","styles","vendor","main"];
const baseHref = undefined;
const deployUrl = undefined;

module.exports = {
  "devtool": "source-map",
  "resolve": {
    "extensions": [
      ".ts",
      ".js",
      ".json"
    ],
    "modules": [
      "./node_modules"
    ],
    "alias": {
      "config": "config/config.dev.js"
    }
  },
  "resolveLoader": {
    "modules": [
      "./node_modules"
    ]
  },
  "entry": {
    "main": [
      "./app/main.ts"
    ],
    "polyfills": [
      "./app/polyfills.ts"
    ],
    "styles": [
      "./dist/style.dev.css"
    ]
  },
  "output": {
    "path": path.join(process.cwd(), "dist/dev"),
    "filename": "[name].bundle.js",
    "sourceMapFilename": "[name].bundle.js.map",
    "chunkFilename": "[id].chunk.js"
  },
  "module": {
    "rules": [
      {
        "enforce": "pre",
        "test": /\.js$/,
        "loader": "source-map-loader",
        "exclude": [
          /\/node_modules\//
        ]
      },
      {
        "test": /\.json$/,
        "loader": "json-loader"
      },
      {
        "test": /\.html$/,
        "loader": "raw-loader"
      },
      {
        "test": /\.(eot|svg)$/,
        "loader": "file-loader?name=[name].[hash:20].[ext]"
      },
      {
        "test": /\.(jpg|png|gif|otf|ttf|woff|woff2|cur|ani)$/,
        "loader": "url-loader?name=[name].[hash:20].[ext]&limit=10000"
      },
      {
        "exclude": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.css$/,
        "loaders": [
          "exports-loader?module.exports.toString()",
          "css-loader?{\"sourceMap\":true,\"importLoaders\":1}",
          "postcss-loader"
        ]
      },
      {
        "exclude": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.less$/,
        "loaders": [
          "exports-loader?module.exports.toString()",
          "css-loader?{\"sourceMap\":true,\"importLoaders\":1}",
          "postcss-loader",
          "less-loader"
        ]
      },
      {
        "include": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.css$/,
        "loaders": ExtractTextPlugin.extract({
          "use": [
            "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", // Don't make sourceMap true, because it will break fonts loading
            "postcss-loader"
          ],
          "fallback": "style-loader",
          "publicPath": ""
        })
      },
      {
        "include": [
          path.join(process.cwd(), "dist/style.dev.css")
        ],
        "test": /\.less$/,
        "loaders": ExtractTextPlugin.extract({
          "use": [
            "css-loader?{\"sourceMap\":false,\"importLoaders\":1}", // Don't make sourceMap true, because it will break fonts loading
            "postcss-loader",
            "less-loader"
          ],
          "fallback": "style-loader",
          "publicPath": ""
        })
      },
      {
        "test": /\.ts$/,
        "loader": "@ngtools/webpack"
      }
    ],
    /*noParse: [
        /\/ws\//,
        /socket\.io\/lib\/index\.js/
    ]*/
  },
  "plugins": [
    new NoEmitOnErrorsPlugin(),
    new ProgressPlugin(),
    new ProvidePlugin({
        $:"jquery",
        jQuery:"jquery"
    }),
    new HtmlWebpackPlugin({
      "template": "./index.html",
      "filename": "./index.html",
      "hash": false,
      "inject": true,
      "compile": true,
      "favicon": false,
      "minify": false,
      "cache": true,
      "showErrors": true,
      "chunks": "all",
      "excludeChunks": [],
      "title": "Webpack App",
      "xhtml": true,
      "chunksSortMode": function sort(left, right) {
        let leftIndex = entryPoints.indexOf(left.names[0]);
        let rightindex = entryPoints.indexOf(right.names[0]);
        if (leftIndex > rightindex) {
            return 1;
        }
        else if (leftIndex < rightindex) {
            return -1;
        }
        else {
            return 0;
        }
    }
    }),
    new BaseHrefWebpackPlugin({}),
    new CommonsChunkPlugin({
      "name": "inline",
      "minChunks": null
    }),
    new CommonsChunkPlugin({
      "name": "vendor",
      "minChunks": (module) => module.resource && module.resource.startsWith(nodeModules),
      "chunks": [
        "main"
      ]
    }),
    new ExtractTextPlugin({
      "filename": "[name].bundle.css",
      "disable": true
    }),
    new LoaderOptionsPlugin({
      "sourceMap": true,
      "options": {
        "postcss": [
          autoprefixer(),
          postcssUrl({"url": (URL) => {
            // Only convert absolute URLs, which CSS-Loader won't process into require().
            if (!URL.startsWith('/')) {
                return URL;
            }
            // Join together base-href, deploy-url and the original URL.
            // Also dedupe multiple slashes into single ones.
            return `/${baseHref || ''}/${deployUrl || ''}/${URL}`.replace(/\/\/+/g, '/');
        }})
        ],
        "lessLoader": {
          "sourceMap": true
        },
        "context": ""
      }
    }),
    new AotPlugin({
      "mainPath": "app/main.ts",
      "hostReplacementPaths": {},
      "exclude": [],
      "tsConfigPath": "tsconfig.json",
      "skipCodeGeneration": true
    }),
    new BundleAnalyzerPlugin({
      analyzerMode: "static",
      openAnalyzer: false,
      reportFilename: 'analyzer/report.html',
    }),
    new WatchIgnorePlugin([
      path.resolve(__dirname, './dist/dev/analyzer'),
      path.resolve(__dirname, './node_modules'),
    ])
  ],
  "node": {
    "fs": "empty",
    "global": true,
    "crypto": "empty",
    "tls": "empty",
    "net": "empty",
    "process": true,
    "module": false,
    "clearImmediate": false,
    "setImmediate": false
  }
};

Os avisos desapareceram quando incluí

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

ao invés de

import * as io from "socket.io";

Mesmo assim, tenho o comportamento em # 1088. O aplicativo mínimo com bug está nesse tópico de problema.

_Editar: resolveu meu problema. Não foi por causa de socket.io._

@metamaker Muito obrigado: +1:

Estou recebendo o seguinte erro com socket.io e webpack 2 posteriores

Module not found: Error: Can't resolve 'socket.io-client/package' in 'xxx/server2/node_modules/socket.io/lib'
Eu tenho que mudar package --> package.json no arquivo fonte socket.io lib / index.js para consertá-lo.

var clientVersion = require('socket.io-client/package.json').version;

webpack.config.js

let path = require('path');
const { GlobCopyWebpackPlugin } = require('@angular/cli/plugins/webpack');

module.exports = {
  devtool: false,

  resolve: {
    modules: [
      'node_modules',
      path.resolve(__dirname, 'src')
    ],
    extensions: ['.ts', '.js'],
    alias: {
      // FIXME: Module not found: Error: Can't resolve 'socket.io-client/package' in '/Developer/Work/iot/hub/server2/node_modules/socket.io/lib'
      // "socket.io-client/package": "empty-module",
      "hiredis": "empty-module",
    }
  },

  target: 'node',

  resolveLoader: {
    modules: [
      'node_modules'
    ]
  },

  entry: {
    main: './src/index',
    vendor: [
      'nest.js',
      'rxjs'
    ]
  },

  output: {
    path: path.resolve(__dirname, './dist/build'),
    filename: '[name].server.bundle.js',
    chunkFilename: "[id].server.chunk.js"
  },

  module: {
    rules: [
      { test: /\.ts$/, use: 'ts-loader' },
      { test: /\.json$/, loader: 'json-loader' },
      { test: /\.html$/, loader: 'raw-loader' },
      { test: /\.(eot|svg)$/, loader: 'file-loader?name=[name].[hash:20].[ext]' },
      { test: /\.js.map/, loader: 'raw-loader' },
    ]
  },

  "plugins": [
    new GlobCopyWebpackPlugin({
      "patterns": [
        "config",
        "data"
      ],
      "globOptions": {
        "cwd": "./",
        "dot": true,
        "ignore": "**/.gitkeep"
      }
    }),
  ]
};

Veja o exemplo aqui: https://github.com/socketio/socket.io/tree/master/examples/webpack-build

A sintaxe correta deve ser import io from 'socket.io-client';

Além disso, o erro Can't resolve 'socket.io-client/package' deve ser corrigido em https://github.com/socketio/socket.io/pull/2960.

Espero que ajude! Caso contrário, reabra um problema com um exemplo reproduzindo o problema, obrigado!

@darrachequesne

quando estou tentando importar com

import io from 'socket.io-client'

TS está me dizendo que o módulo não tem exportação padrão

@crebuh
Adicione tipos para o texto datilografado.
npm i @types/socket.io-client

@ kdw3lch

não está funcionando Eu já tinha tipos na versão 1.4.29 e atualizei o socket.io-client de 1.7.3 para 2.0.3, continua o mesmo problema.

talvez meu tsconfig.json esteja errado, alguma ideia?

@crebuh eu deveria ter lido com mais atenção!
import * as io from 'socket.io-client'

Estou vendo esse problema com o webpack ^ 2.0.0 e nenhum socket.io no pacote. Quando eu corro o carma, estou recebendo isso.

Não tenho certeza para onde ir a partir daqui depuração de ITO.

adicionar socket.io-client às dependências em meu package.json resolveu o problema para mim

Eu tive o mesmo problema quando fiz o checkout de um projeto existente.
Eu executo npm -i, todas as dependências foram instaladas, mas este erro aparece:

"Não é possível resolver 'engine.io-client'"

Foi corrigido através da instalação de socket.io-client.

npm i socket.io-client

Esta página foi útil?
0 / 5 - 0 avaliações