Socket.io-client: Problèmes de construction de Webpack avec la 1.4.1

Créé le 7 janv. 2016  ·  57Commentaires  ·  Source: socketio/socket.io-client

Avec la 1.4.1, je vois le problème suivant de Webpack. Mon code n'a aucun problème avec la 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

Commentaire le plus utile

Les avertissements ont disparu lorsque j'ai inclus

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

à la place de

import * as io from "socket.io";

Pourtant, j'ai un comportement comme dans #1088. Une application minimale avec un bogue se trouve dans ce fil de discussion.

_Edit : J'ai résolu mon problème. Ce n'était pas à cause de socket.io._

Tous les 57 commentaires

+1

Je recommande pour l'instant :

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

jusqu'à ce que nous trouvions une meilleure solution

La raison en est probablement que le package publié sur npm contient un fichier webpack.config.js qu'il n'avait pas avec <=1.4.0. D'où ça vient de toute façon ? Je ne le vois pas dans le repo.

La construction de Browserify échoue également. Forcer l'utilisation de la version 1.4.0 résout le problème.

J'ai accidentellement publié ce fichier. J'essayais de m'éloigner de browserify.

1.4.3 dehors.

Note à moi-même : devrait explicitement définir files dans package.json

Toujours les mêmes problèmes avec la 1.4.3. Ajouter:

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

Aide cependant.

Encore cassé.

@Levino, je pense que vous devrez faire en sorte que browserify ignore/exclut ws, comme

Mais toute solution meilleure que cette solution de contournement sera chaleureusement accueillie.

J'utilise simplement la version "~1.3.7" au lieu de "^1.3.7" dans mes packages pour le moment.

Déplacé du serveur vers ce thread socket.io-client.


Exécutait la 1.3.7 et utilisait npm pour mettre à jour socket.io-client vers la 1.4.3.

L'application utilise uniquement le client socket.io pour se connecter à un serveur de jeu (également mis à jour vers socket.io 1.4.3). Développer sur windows 7.

J'ai essayé de désinstaller via npm et de réinstaller. Je ne m'attendais pas à voir des avertissements et des erreurs de socket.io-client et engine.io-client lors du démarrage de l'application.

Les modules manquants ne devraient-ils pas faire partie du package npm ?

Mises en garde:

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

Les erreurs:

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

@ADmaine Avez-vous eu des problèmes avec la 1.3.7 ? Sinon, continuez à l'utiliser jusqu'à ce que ce problème soit résolu.

@Levino No 1.3.7 n'avait aucun problème. 1.4.3 fonctionne réellement. Il se connecte au serveur et transmet les données, mais je développe toujours localement et n'utilise pas des choses comme tls. Je vais le laisser à 1.4.3 pour l'instant et tester toutes les mises à jour ou revenir s'il n'y en a pas et nous sommes prêts à mettre en scène.

Nous publions un correctif plus permanent aujourd'hui !

Super.

1.4.4 Corrige cela pour moi. Merci!

1.4.4 l'a corrigé pour moi aussi !. Utilisé npm avec @latest. Serveur redémarré et il n'y a eu aucun avertissement ni erreur.
Merci!

toujours un problème pour moi, j'ai mis à jour vers un dernier socket.io-client, ws et webpack, et j'obtiens ce qui suit

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 quelles sont les étapes à reproduire svp ? J'ai ce qui suit avec 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 :coeur:

@darrachequesne , j'ai la configuration suivante
nœud : v4.2.3

J'ai mon module local qui utilise les bibliothèques sails.io.js et socket.io-client
voiles.io.js : 0.12.2
socket.io-client : 1.4.4
J'inclus ce module dans l'application et j'exécute le serveur webpack
Webpack : 1.12.11
serveur webpack-dev : 1.14.1

lorsque j'exécute webpack .bundle.js, tout semble bon, mais lorsque j'essaie de l'exécuter en tant que serveur de développement webpack, l'erreur que j'ai mentionnée est renvoyée

@mrvini, je suis désolé, il semble que je ne puisse pas reproduire :

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

Est-ce que j'ai râté quelque chose?

Merci @darrachequesne pour l'avoir examiné, vous avez raison, sails.io.js dépend du client socket.io, mais uniquement en tant que dépendances de développement, je crois (cela dépend principalement de la demande qui produit le problème principal pour une raison quelconque).

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

Pour info, ce qui est étrange, c'est qu'avec la version 0.8.1 de WS, cela semble fonctionner

fonctionne à nouveau aussi, merci!

Idem ici... il manque de nombreuses dépendances...

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

je vois toujours ça :

[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

Paquets:

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

J'ai également essayé cette configuration Webpack:

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

+1

+1

+1

Les:

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

ne semble pas le réparer. Maintenant, le module ws n'est pas défini.

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

J'ai aussi des problèmes depuis la version 1.4.x
Mon exemple de projet est une application TODO simple avec les versions suivantes :

  • NodeJS v5.8.0,
  • NPM v3.7.3,
  • RethinkDB v2.3.2,
  • RethinkDbDash v2.2.18,
  • Aurelia dernière bêta,
  • Socket.io v1.4.6,
  • Socket.io-client v1.4.6,
  • ws v1.1.0

Configuration du Webpack

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

Cela aide à supprimer certaines des erreurs et des avertissements, mais je reçois toujours l'avertissement et les erreurs suivants.

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

Mais même avec les erreurs affichées, le projet et le socket fonctionnent toujours comme prévu avec plusieurs navigateurs.

A également ajouté un exemple Github TODO si quelqu'un souhaite reproduire les erreurs.

Je rencontre le même problème avec la 1.4.6. et recevoir les mêmes erreurs que @ghiscoding. J'ai ajouté le noParse , et externals comme décrit ci-dessus dans le fil. J'ai une application très

Les seules dépendances de l'application publiée sont :

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

Pour reproduire les erreurs téléchargez le repo, exécutez npm install puis exécutez npm prepublish

@dbslone merci. Nous devrions également avoir un test dans CI qui construit le projet avec webpack pour éviter également des problèmes à l'avenir.

Mêmes avertissements sur 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-t-il actuellement une solution de contournement pour cela? J'ai essayé d'ajouter noParse et externals mais je vois toujours les erreurs juste au-dessus. Utilisation de socket.io 1.4.6, webpack 1.13.1

import io from 'socket.io-client/socket.io' semble fonctionner pour moi (par opposition à import io from 'socket.io' )

je reçois toujours

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.

mais... au moins ça marche

@WestleyArgentum J'avais aussi du mal avec ça, mais j'ai ensuite lu la section comment utiliser dans le read me. tant que vous utilisez le socket.io sur votre serveur, vous devriez être prêt à partir

Une version autonome de socket.io-client est exposée automatiquement par le serveur socket.io en tant que /socket.io/socket.io.js.

J'ai ajouté <script type="text/javascript" charset="utf-8" src="/socket.io/socket.io.js"></script> à la tête de mon html et de ma doc et cela a exposé io en tant que global, donc pas besoin d'importer.

Socket.IO : 1.4.6
Pack Web : 1.13.0
Webpack a 'node' comme cible dans la configuration.

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

Exactement le même problème que @omerts ici... Quelqu'un a-t-il trouvé un correctif ?

Cela semble vaguement lié à la demande/demande/problèmes/1529

Obtenez également ceci avec les packages websocket et ws .

Idem, obtenir cette erreur en utilisant ws

Socket.IO : 1.7.3
Pack Web : 2.2.1
Module introuvable : Erreur : Impossible de résoudre 'socket.io-client/package'

@zweifisch , incluez le chargeur json dans votre configuration pour résoudre votre problème.

J'ai toujours "AVERTISSEMENT dans ./~/engine.io/lib/server.js Dépendance critique: la demande d'une dépendance est une expression" et d'autres similaires à celles des personnes ci-dessus.

J'utilise Angular2. Peut-être que la configuration va aider :

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
  }
};

Les avertissements ont disparu lorsque j'ai inclus

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

à la place de

import * as io from "socket.io";

Pourtant, j'ai un comportement comme dans #1088. Une application minimale avec un bogue se trouve dans ce fil de discussion.

_Edit : J'ai résolu mon problème. Ce n'était pas à cause de socket.io._

@metamaker Merci beaucoup :+1:

J'obtiens l'erreur suivante avec socket.io plus tard et webpack 2

Module not found: Error: Can't resolve 'socket.io-client/package' in 'xxx/server2/node_modules/socket.io/lib'
Je dois changer package --> package.json dans le fichier source socket.io lib/index.js pour le réparer.

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"
      }
    }),
  ]
};

Veuillez consulter l'exemple ici : https://github.com/socketio/socket.io/tree/master/examples/webpack-build

La bonne syntaxe doit être import io from 'socket.io-client';

De plus, l'erreur Can't resolve 'socket.io-client/package' devrait être corrigée par https://github.com/socketio/socket.io/pull/2960.

J'espère que cela pourra aider! Sinon, veuillez rouvrir un problème avec un exemple reproduisant le problème, merci !

@darrachequesne

quand j'essaye d'importer avec

import io from 'socket.io-client'

TS me dit que le module n'a pas d'export par défaut

@crebuh
Ajoutez des types pour le texte dactylographié.
npm i @types/socket.io-client

@kdw3lch

non, cela ne fonctionne pas, j'avais déjà des types dans la version 1.4.29 et j'ai mis à niveau le client socket.io de 1.7.3 à 2.0.3, toujours le même problème.

peut-être que mon tsconfig.json est faux, des idées ?

@crebuh j'aurais dû lire plus attentivement !
import * as io from 'socket.io-client'

Je vois ce problème avec webpack ^2.0.0 et pas de socket.io dans le package. Quand je lance le karma, je reçois ceci.

Je ne sais pas où aller à partir de là pour le débogage ITO.

l'ajout de socket.io-client aux dépendances de mon package.json a résolu le problème pour moi

J'ai eu le même problème lorsque j'ai effectué la vérification d'un projet existant.
Je lance npm -i, toutes les dépendances ont été installées, mais cette erreur apparaît :

" Impossible de résoudre 'engine.io-client' "

A été corrigé en installant socket.io-client.

npm je socket.io-client

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

catamphetamine picture catamphetamine  ·  3Commentaires

hyperknot picture hyperknot  ·  6Commentaires

david-fong picture david-fong  ·  4Commentaires

najibghadri picture najibghadri  ·  7Commentaires

zappfinger picture zappfinger  ·  5Commentaires