Socket.io-client: Masalah pembuatan Webpack dengan 1.4.1

Dibuat pada 7 Jan 2016  ·  57Komentar  ·  Sumber: socketio/socket.io-client

Dengan 1.4.1 saya melihat masalah berikut dari Webpack. Kode saya tidak memiliki masalah dengan 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

Komentar yang paling membantu

Peringatan menghilang ketika saya menyertakan

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

dari pada

import * as io from "socket.io";

Tetap saja, saya memiliki perilaku seperti pada # 1088. Aplikasi minimal dengan bug ada di utas masalah itu.

_Edit: Memecahkan masalah saya. Itu bukan karena socket.io._

Semua 57 komentar

+1

Saya sarankan untuk saat ini:

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

sampai kita menemukan perbaikan yang lebih baik

Alasannya mungkin karena paket yang diterbitkan pada npm berisi file webpack.config.js yang tidak dengan <=1.4.0. Dari mana itu berasal? Saya tidak bisa melihatnya di repo.

Pembuatan browserify juga gagal. Memaksa penggunaan 1.4.0 memperbaiki masalah.

Saya tidak sengaja menerbitkan file itu. Saya bereksperimen dengan pindah dari browserify.

1.4.3 keluar.

Catatan untuk diri sendiri: harus secara eksplisit mengatur files di package.json

Masih memiliki masalah yang sama dengan 1.4.3. Menambahkan:

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

Membantu sekalipun.

Masih rusak.

@Levino Saya pikir Anda harus membuat browserify mengabaikan/mengecualikan ws, seperti di sana

Tetapi solusi apa pun yang lebih baik daripada solusi ini akan disambut dengan hangat.

Saya hanya menggunakan versi "~ 1.3.7" alih-alih "^ 1.3.7" dalam paket saya untuk saat ini.

Memindahkan ini dari server ke utas socket.io-client ini.


Sedang menjalankan 1.3.7 dan menggunakan npm untuk memperbarui socket.io-client ke 1.4.3.

Aplikasi ini hanya menggunakan socket.io-client untuk terhubung ke server game (juga diperbarui ke socket.io 1.4.3). Berkembang di windows 7.

Mencoba mencopot pemasangan melalui npm dan menginstal ulang. Tidak menyangka akan melihat peringatan dan kesalahan dari socket.io-client dan engine.io-client saat memulai aplikasi.

Bukankah modul yang hilang seharusnya menjadi bagian dari paket npm?

Peringatan:

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

Kesalahan:

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 Apakah Anda memiliki masalah dengan 1.3.7? Jika tidak, terus gunakan sampai ini diselesaikan.

@Levino No 1.3.7 tidak mengalami masalah. 1.4.3 benar-benar berfungsi. Itu terhubung ke server dan meneruskan data, tetapi saya masih mengembangkan secara lokal dan tidak menggunakan hal-hal seperti tls. Saya akan membiarkannya di 1.4.3 untuk saat ini dan menguji pembaruan apa pun atau mengembalikan jika tidak ada dan kami siap untuk tahap.

Kami menerbitkan perbaikan yang lebih permanen hari ini!

Besar.

1.4.4 Memperbaiki ini untuk saya. Terima kasih!

1.4.4 memperbaikinya untuk saya juga!. Digunakan npm dengan @terbaru. Restart server dan tidak ada peringatan atau kesalahan.
Terima kasih!

masih menjadi masalah bagi saya, saya telah memperbarui ke socket.io-client, ws dan webpack terbaru, dan mendapatkan yang berikut ini

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 apa langkah-langkah untuk mereproduksi tolong? Saya memiliki yang berikut dengan 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 :hati:

@darrachequesne , saya memiliki pengaturan berikut
simpul: v4.2.3

Saya memiliki modul lokal saya yang menggunakan perpustakaan sails.io.js dan socket.io-client
sails.io.js: 0.12.2
socket.io-klien: 1.4.4
Saya memasukkan modul ini ke dalam aplikasi dan menjalankan server webpack
paket web: 1.12.11
webpack-dev-server: 1.14.1

ketika saya menjalankan webpack .bundle.js, semuanya terlihat bagus, namun ketika saya mencoba menjalankannya sebagai server dev webpack, itu melempar kesalahan yang saya sebutkan di atas

@mrvini Maaf, sepertinya saya tidak dapat mereproduksi:

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

Apakah saya melewatkan sesuatu di sini?

Terima kasih @darrachequesne untuk

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

FYI, anehnya dengan WS versi 0.8.1, sepertinya berhasil

bekerja untuk lagi juga, terima kasih!

Sama di sini ... kehilangan banyak dependensi ...

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

Saya masih melihat ini:

[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

Paket:

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

Saya telah mencoba konfigurasi webpack ini juga:

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

+1

+1

+1

NS:

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

tampaknya tidak memperbaikinya. Sekarang modul ws tidak terdefinisi.

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

Saya juga punya masalah sejak versi 1.4.x
Proyek sampel saya adalah aplikasi TODO sederhana dengan versi berikut:

  • NodeJS v5.8.0,
  • NPM v3.7.3,
  • Pikirkan kembaliDB v2.3.2,
  • Pikirkan kembaliDbDash v2.2.18,
  • Aurelia Beta terbaru,
  • Socket.io v1.4.6,
  • Socket.io-klien v1.4.6,
  • ws v1.1.0

Konfigurasi paket web

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

Ini membantu dalam menghapus beberapa kesalahan dan peringatan tetapi saya masih mendapatkan peringatan dan kesalahan berikut.

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

Tetapi bahkan dengan kesalahan yang ditampilkan, proyek dan soket masih berfungsi sebagaimana dimaksud dengan banyak browser.

Juga menambahkan Sampel TODO Github jika ada yang ingin mereproduksi kesalahan.

Saya mengalami masalah yang sama dengan 1.4.6. dan menerima kesalahan yang sama seperti @ghiscoding. Saya telah menambahkan noParse , dan externals seperti yang dijelaskan di atas di utas. Saya memiliki aplikasi yang sangat

Satu-satunya dependensi dari aplikasi yang diterbitkan adalah:

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

Untuk mereproduksi kesalahan, unduh repo, jalankan npm install lalu jalankan npm prepublish

@dbslone terima kasih. Kita juga harus melakukan pengujian di CI yang membangun proyek dengan webpack untuk menghindari masalah di masa mendatang juga.

Peringatan yang sama pada 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" }
        ]
    }
};

Apakah saat ini ada solusi untuk ini? Saya sudah mencoba menambahkan noParse dan externals tetapi saya masih melihat kesalahan tepat di atas. Menggunakan socket.io 1.4.6, webpack 1.13.1

import io from 'socket.io-client/socket.io' tampaknya bekerja untuk saya (sebagai lawan dari import io from 'socket.io' )

saya masih mengerti

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.

tapi... setidaknya berhasil

@WestleyArgentum Saya sebenarnya berjuang dengan ini juga, tetapi kemudian saya membaca bagian cara menggunakan di read me. selama Anda menggunakan socket.io di server Anda, Anda akan baik-baik saja

Sebuah build mandiri dari socket.io-client diekspos secara otomatis oleh server socket.io sebagai /socket.io/socket.io.js.

Saya menambahkan <script type="text/javascript" charset="utf-8" src="/socket.io/socket.io.js"></script> ke kepala html dan doc saya dan itu mengekspos io sebagai global, jadi tidak perlu mengimpor.

Socket.IO: 1.4.6
Paket Web: 1.13.0
Webpack memiliki 'simpul' sebagai target dalam konfigurasi.

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

Masalah yang sama persis dengan @omerts di sini... Adakah yang menemukan solusi?

Ini tampaknya samar-samar terkait dengan permintaan/permintaan/masalah/1529

Juga mendapatkan ini dengan paket websocket dan ws .

Sama, mendapatkan kesalahan ini menggunakan ws

Socket.IO: 1.7.3
Paket Web: 2.2.1
Modul tidak ditemukan: Kesalahan: Tidak dapat menyelesaikan 'socket.io-client/package'

@zweifisch , sertakan json loader di konfigurasi Anda untuk menyelesaikan masalah Anda.

Masih saya memiliki "PERINGATAN di ./~/engine.io/lib/server.js Ketergantungan kritis: permintaan ketergantungan adalah ekspresi" dan lainnya serupa dengan yang dari orang-orang di atas.

Saya menggunakan Angular2. Mungkin konfigurasi akan membantu:

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

Peringatan menghilang ketika saya menyertakan

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

dari pada

import * as io from "socket.io";

Tetap saja, saya memiliki perilaku seperti pada # 1088. Aplikasi minimal dengan bug ada di utas masalah itu.

_Edit: Memecahkan masalah saya. Itu bukan karena socket.io._

@metamaker Terima kasih banyak :+1:

Saya mendapatkan kesalahan berikut dengan socket.io dan webpack 2 nanti

Module not found: Error: Can't resolve 'socket.io-client/package' in 'xxx/server2/node_modules/socket.io/lib'
Saya harus mengubah package --> package.json dalam file sumber socket.io lib/index.js untuk memperbaikinya.

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

Silakan lihat contohnya di sini: https://github.com/socketio/socket.io/tree/master/examples/webpack-build

Sintaks yang benar harus import io from 'socket.io-client';

Juga, kesalahan Can't resolve 'socket.io-client/package' harus diperbaiki dengan https://github.com/socketio/socket.io/pull/2960.

Semoga membantu! Jika tidak, silakan buka kembali masalah dengan contoh yang mereproduksi masalah, terima kasih!

@darrachequesne

ketika saya mencoba mengimpor dengan

import io from 'socket.io-client'

TS memberi tahu saya bahwa modul tidak memiliki ekspor default

@crebuh
Tambahkan jenis untuk TypeScript.
npm i @types/socket.io-client

@kdw3lch

tidak, itu tidak berfungsi. Saya sudah mengetik di versi 1.4.29 dan memutakhirkan socket.io-client dari 1.7.3 ke 2.0.3, masih masalah yang sama.

mungkin tsconfig.json saya salah, ada ide?

@crebuh Saya harus membaca lebih hati-hati!
import * as io from 'socket.io-client'

Saya melihat masalah ini dengan webpack ^2.0.0 dan tidak ada socket.io dalam paket. Ketika saya menjalankan karma saya mendapatkan ini.

Tidak yakin ke mana harus pergi dari sini debugging ITO.

menambahkan socket.io-client ke dependensi di package.json saya memperbaiki masalah untuk saya

Saya memiliki masalah serupa ketika saya melakukan checkout dari proyek yang ada.
Saya menjalankan npm -i, semua ketergantungan telah diinstal, tetapi kesalahan ini muncul:

"Tidak dapat menyelesaikan 'engine.io-client'"

Diperbaiki dengan menginstal socket.io-client.

npm saya socket.io-client

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

ledmago picture ledmago  ·  3Komentar

BorntraegerMarc picture BorntraegerMarc  ·  4Komentar

patrickbussmann picture patrickbussmann  ·  6Komentar

ahadcove picture ahadcove  ·  7Komentar

najibghadri picture najibghadri  ·  7Komentar