Socket.io-client: Webpack-Build-Probleme mit 1.4.1

Erstellt am 7. Jan. 2016  ·  57Kommentare  ·  Quelle: socketio/socket.io-client

Mit 1.4.1 sehe ich das folgende Problem von Webpack. Mein Code hat keine Probleme mit 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

Hilfreichster Kommentar

Warnungen sind verschwunden, als ich aufgenommen habe

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

Anstatt von

import * as io from "socket.io";

Trotzdem habe ich ein Verhalten wie in #1088. Minimale App mit Fehler ist in diesem Problemthread.

_Edit: Mein Problem gelöst. Es lag nicht an socket.io._

Alle 57 Kommentare

+1

Ich empfehle vorerst:

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

bis wir eine bessere Lösung finden

Der Grund ist wahrscheinlich, dass das veröffentlichte Paket auf npm eine webpack.config.js Datei enthält, die es mit <=1.4.0 nicht getan hat. Woher kommt das überhaupt? Ich kann es im Repo nicht sehen.

Browserify-Build schlägt auch fehl. Das Erzwingen der Verwendung von 1.4.0 behebt das Problem.

Ich habe diese Datei versehentlich veröffentlicht. Ich experimentierte damit, weg von browserify.

1.4.3 aus.

Hinweis an mich selbst: sollte files explizit in package.json

Habe immer noch die gleichen Probleme mit 1.4.3. Hinzufügen:

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

Hilft aber.

Immer noch kaputt.

@Levino Ich denke, du musst browserify dazu bringen, ws zu ignorieren/auszuschließen, wie dort

Aber jede bessere Lösung als diese Problemumgehung wird herzlich begrüßt.

Ich verwende in meinen Paketen vorerst nur die Version "~1.3.7" anstelle von "^1.3.7".

Dies wurde vom Server in diesen socket.io-client-Thread verschoben.


Läuft 1.3.7 und verwendet npm, um socket.io-client auf 1.4.3 zu aktualisieren.

Die App verwendet nur den socket.io-Client, um eine Verbindung zu einem Spieleserver herzustellen (auch aktualisiert auf socket.io 1.4.3). Entwicklung unter Windows 7.

Habe versucht über npm zu deinstallieren und neu zu installieren. Ich habe nicht erwartet, beim Starten der App Warnungen und Fehler von socket.io-client und engine.io-client zu sehen.

Sollten die fehlenden Module nicht Teil des npm-Pakets sein?

Warnungen:

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

Fehler:

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 Hatten Sie Probleme mit 1.3.7? Wenn nicht, verwenden Sie es einfach weiter, bis das Problem hier gelöst ist.

@ Levino Nr. 1.3.7 hatte keine Probleme. 1.4.3 funktioniert tatsächlich. Es verbindet sich mit dem Server und leitet Daten weiter, aber ich entwickle immer noch lokal und verwende keine Dinge wie tls. Ich belasse es vorerst bei 1.4.3 und teste alle Updates oder kehre zurück, wenn es keine gibt und wir sind bereit für die Inszenierung.

Wir veröffentlichen heute eine dauerhaftere Lösung!

Groß.

1.4.4 Behebt dies für mich. Vielen Dank!

1.4.4 hat es auch für mich behoben!. Verwendet npm mit @latest. Server neu gestartet und es gab keine Warnungen oder Fehler.
Vielen Dank!

immer noch ein problem für mich, ich habe auf den neuesten socket.io-client, ws und webpack aktualisiert und bekomme folgendes

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, was sind die Schritte zum Reproduzieren bitte? Ich habe folgendes mit Steckdose. [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 :herz:

@darrachequesne , ich habe das folgende Setup
Knoten: v4.2.3

Ich habe mein lokales Modul, das die Bibliotheken sails.io.js und socket.io-client verwendet
Segel.io.js: 0.12.2
socket.io-client: 1.4.4
Ich füge dieses Modul in die Anwendung ein und führe den Webpack-Server aus
Webpack: 1.12.11
webpack-dev-server: 1.14.1

Wenn ich webpack .bundle.js ausführe, sieht alles gut aus, aber wenn ich versuche, es als Webpack-Entwicklungsserver auszuführen, wird der oben erwähnte Fehler ausgegeben

@mrvini Es tut mir leid, ich kann anscheinend nicht reproduzieren:

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

Übersehe ich hier etwas?

Danke @darrachequesne , dass Sie sich das angeschaut haben, richtig, sails.io.js hängt vom socket.io-Client ab, aber ich glaube nur als Dev-Abhängigkeit (meistens hängt es von der Anfrage ab, die aus irgendeinem Grund das Hauptproblem erzeugt).

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

Zu Ihrer Information, seltsam ist, dass es mit der WS-Version 0.8.1 zu funktionieren scheint

funktioniert auch wieder, danke!

Das gleiche hier ... es fehlen viele Abhängigkeiten ...

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

Ich sehe das immer noch:

[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

Pakete:

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

Ich habe auch diese Webpack-Konfiguration ausprobiert:

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

+1

+1

+1

Die:

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

scheint es nicht zu beheben. Jetzt ist das ws-Modul undefiniert.

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

Ich habe auch Probleme seit Version 1.4.x
Mein Beispielprojekt ist eine einfache TODO-App mit folgenden Versionen:

  • NodeJS v5.8.0,
  • NPM v3.7.3,
  • RethinkDB v2.3.2,
  • RethinkDbDash v2.2.18,
  • Aurelia neueste Beta,
  • Socket.io v1.4.6,
  • Socket.io-Client v1.4.6,
  • ws v1.1.0

Webpack-Konfiguration

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

Es hilft beim Entfernen einiger Fehler und Warnungen, aber ich erhalte immer noch die folgenden Warnungen und Fehler.

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

Aber selbst wenn die Fehler angezeigt werden, funktionieren das Projekt und der Socket mit mehreren Browsern immer noch wie beabsichtigt.

Außerdem wurde ein Github TODO-Beispiel hinzugefügt, wenn jemand die Fehler reproduzieren möchte.

Ich habe das gleiche Problem mit 1.4.6. und erhalte die gleichen Fehler wie @ghiscoding. Ich habe die noParse und externals wie oben im Thread beschrieben hinzugefügt. Ich habe eine sehr einfache App , die beim Debuggen hilfreich sein kann.

Die einzigen Abhängigkeiten der veröffentlichten Anwendung sind:

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

Um die Fehler zu reproduzieren, laden Sie das Repo herunter, führen Sie npm install dann npm prepublish

@dbslone danke. Wir sollten auch einen Test in CI haben, der das Projekt mit Webpack erstellt, um auch in Zukunft Probleme zu vermeiden.

Dieselben Warnungen auf 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" }
        ]
    }
};

Gibt es dafür aktuell einen Workaround? Ich habe versucht, noParse und externals hinzuzufügen, aber ich sehe immer noch die Fehler oben. Verwendung von socket.io 1.4.6, Webpack 1.13.1

import io from 'socket.io-client/socket.io' scheint für mich zu funktionieren (im Gegensatz zu import io from 'socket.io' )

Ich bekomme immer noch

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.

aber... zumindest funktioniert es

@WestleyArgentum Ich hatte tatsächlich auch damit zu kämpfen, aber dann habe ich den Abschnitt zur Verwendung in der Read Me gelesen. Solange du das socket.io auf deinem Server verwendest, solltest du bereit sein

Ein eigenständiger Build von socket.io-client wird automatisch vom socket.io-Server als /socket.io/socket.io.js bereitgestellt.

Ich habe <script type="text/javascript" charset="utf-8" src="/socket.io/socket.io.js"></script> zum Kopf meines HTML- und Dokuments hinzugefügt und es hat io als global angezeigt, sodass kein Import erforderlich ist.

Sockel.IO: 1.4.6
Webpack: 1.13.0
Webpack hat 'node' als Ziel in config.

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

Genau das gleiche Problem wie bei @omerts hier ... Hat jemand eine Lösung gefunden?

Dies scheint vage mit request/request/issues/1529 zusammenzuhängen

Dies ist auch mit den Paketen websocket und ws .

Dasselbe gilt für diesen Fehler mit ws

Sockel.IO: 1.7.3
Webpack: 2.2.1
Modul nicht gefunden: Fehler: 'socket.io-client/package' kann nicht aufgelöst werden

@zweifisch ,

Ich habe immer noch "WARNING in ./~/engine.io/lib/server.js Critical Dependency: Die Anforderung einer Dependency ist ein Ausdruck" und andere ähnlich denen von oben.

Ich benutze Angular2. Vielleicht hilft die Konfiguration:

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

Warnungen sind verschwunden, als ich aufgenommen habe

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

Anstatt von

import * as io from "socket.io";

Trotzdem habe ich ein Verhalten wie in #1088. Minimale App mit Fehler ist in diesem Problemthread.

_Edit: Mein Problem gelöst. Es lag nicht an socket.io._

@metamaker Vielen Dank :+1:

Ich erhalte folgende Fehlermeldung mit späterem socket.io und webpack 2

Module not found: Error: Can't resolve 'socket.io-client/package' in 'xxx/server2/node_modules/socket.io/lib'
Ich muss package --> package.json in der Quelldatei socket.io lib/index.js ändern , um das

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

Bitte sehen Sie sich das Beispiel hier an: https://github.com/socketio/socket.io/tree/master/examples/webpack-build

Die richtige Syntax sollte import io from 'socket.io-client';

Außerdem sollte der Fehler Can't resolve 'socket.io-client/package' von https://github.com/socketio/socket.io/pull/2960 behoben werden

Ich hoffe, das hilft! Wenn nicht, öffnen Sie bitte erneut ein Problem mit einem Beispiel, das das Problem reproduziert, danke!

@darrachequesne

wenn ich versuche zu importieren mit

import io from 'socket.io-client'

TS sagt mir, dass das Modul keinen Standardexport hat

@crebuh
Typen für Typoskript hinzufügen.
npm i @types/socket.io-client

@kdw3lch

nein, es funktioniert nicht Ich hatte schon Typen in Version 1.4.29 und habe den socket.io-Client von 1.7.3 auf 2.0.3 aktualisiert, immer noch das gleiche Problem.

Vielleicht ist meine tsconfig.json falsch, irgendwelche Ideen?

@crebuh Ich hätte genauer lesen sollen!
import * as io from 'socket.io-client'

Ich sehe dieses Problem mit Webpack ^2.0.0 und ohne socket.io im Paket. Wenn ich Karma laufe, bekomme ich das.

Ich bin mir nicht sicher, wo ich von hier aus zum ITO-Debugging gehen soll.

Das Hinzufügen von socket.io-client zu den Abhängigkeiten in meinem package.json hat das Problem für mich behoben

Ich hatte das ähnliche Problem, als ich ein bestehendes Projekt auscheckte.
Ich führe npm -i aus, alle Abhängigkeiten wurden installiert, aber dieser Fehler wird angezeigt:

" Kann 'engine.io-client' nicht auflösen "

Wurde durch die Installation von socket.io-client behoben.

npm und socket.io-client

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen