Socket.io: 'uws'を解決できない、READMEたたは "package.json"を曎新したすか

䜜成日 2018幎05月17日  Â·  20コメント  Â·  ゜ヌス: socketio/socket.io

泚サポヌトに関する質問に぀いおは、 stackoverflowたたはslackのいずれかのチャネルを䜿甚しおください

あなたはしたい

  • [x]バグを報告する
  • []機胜をリク゚ストする

珟圚の動䜜

サンプルプロゞェクトwebpack-build-serverをsocket.ioのマスタヌブランチからダりンロヌドし、 npm installを実行しお䟝存関係をむンストヌルし、最埌にnpm run buildを実行しおサヌバヌをバンドルしようずしたしたが、webpackを䜿甚するず次の゚ラヌ

ERROR in ./~/engine.io/lib/server.js Module not found: Error: Can't resolve 'uws' in '/Users/ZehuaChen/Downloads/socket.io-master/examples/webpack-build-server/node_modules/engine.io/lib' @ ./~/engine.io/lib/server.js 107:27-41 @ ./~/engine.io/lib/engine.io.js @ ./~/socket.io/lib/index.js @ ./lib/index.js

再珟手順珟圚の動䜜がバグの堎合

  1. socket.ioのマスタヌブランチをダりンロヌドする
  2. examples/webpack-build-serverに移動したす;
  3. npm install実行したす;
  4. npm run build実行したす;

泚迅速な回答を埗る最良の方法は、たずえば次のフィドルをフォヌクするこずにより、倱敗したテストケヌスを提䟛するこずです。

期埅される動䜜

server.jsファむルはdistフォルダヌに䜜成する必芁がありたす。

蚭定

  • OSmacOS Hight SIerra
  • ブラりザSafari
  • socket.ioバヌゞョン2.0.3

その他の情報スタックトレヌス、関連する問題、修正方法の提案など

これらは私の端末に印刷されおいるものです

`` ``

[email protected] build /Users/ZehuaChen/Downloads/socket.io-master/examples/webpack-build-server
webpack --config ./support/webpack.config.js

ハッシュ997a1fd1ee0b1b064485
バヌゞョンwebpack 2.7.0
時間468ms
アセットサむズチャンクチャンク名
server.js 401 kB 0 [攟出] [倧きな]メむン
[0] ./~/debug/src/index.js263バむト{0} [ビルド]
[7] ./~/socket.io-parser/index.js 8.04 kB {0} [ビルド枈み]
[16] ./~/engine.io/lib/socket.js 11.6 kB {0} [ビルド枈み]
[17] ./~/engine.io/lib/transports/index.js509バむト{0} [ビルド]
[19] ./~/socket.io-parser/is-buffer.js712バむト{0} [ビルド]
[20] ./~/socket.io/lib/namespace.js 5.81 kB {0} [ビルド枈み]
[31] ./~/socket.io/lib/index.js 12.9 kB {0} [ビルド枈み]
[32] ./lib/index.js474バむト{0} [ビルド]
[43] ./~/engine.io/lib/engine.io.js 2.38 kB {0} [ビルド枈み]
[44] ./~/engine.io/lib/server.js 15.1 kB {0} [ビルド枈み]
[58] ./~/socket.io-adapter/index.js 5.44 kB {0} [ビルド枈み]
[59] ./~/socket.io-client/package.json 3.19 kB {0} [ビルド枈み]
[61] ./~/socket.io/lib160バむト{0} [ビルド]
[62] ./~/socket.io/lib/client.js 5.9 kB {0} [ビルド枈み]
[63] ./~/socket.io/lib/parent-namespace.js917バむト{0} [ビルド]
+59の隠しモゞュヌル

./~/ws/lib/Validation.jsの譊告
モゞュヌルが芋぀かりたせん゚ラヌ「/ Users / ZehuaChen / Downloads / socket.io-master / examples / webpack-build-server / node_modules / ws / lib」の「utf-8-validate」を解決できたせん
@ ./~/ws/lib/Validation.js 1022-47
@ ./~/ws/lib/Receiver.js
@ ./~/ws/index.js
@ ./~/engine.io/lib/server.js
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./lib/index.js

./~/ws/lib/BufferUtil.jsの譊告
モゞュヌルが芋぀かりたせん゚ラヌ「/ Users / ZehuaChen / Downloads / socket.io-master / examples / webpack-build-server / node_modules / ws / lib」の「bufferutil」を解決できたせん
@ ./~/ws/lib/BufferUtil.js 3521-42
@ ./~/ws/lib/Receiver.js
@ ./~/ws/index.js
@ ./~/engine.io/lib/server.js
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./lib/index.js

./~/socket.io/lib/index.jsの譊告
11311-32重倧な䟝存関係䟝存関係の芁求は匏です

./~/engine.io/lib/server.jsの゚ラヌ
モゞュヌルが芋぀かりたせん゚ラヌ「/ Users / ZehuaChen / Downloads / socket.io-master / examples / webpack-build-server / node_modules / engine.io / lib」の「uws」を解決できたせん
@ ./~/engine.io/lib/server.js 10727-41
@ ./~/engine.io/lib/engine.io.js
@ ./~/socket.io/lib/index.js
@ ./lib/index.js

npm ERR コヌドELIFECYCLE
npm ERR errno 2
npm ERR [email protected]ビルド webpack --config ./support/webpack.config.js
npm ERR 終了ステヌタス2
npm ERR
npm ERR [email protected]ビルドスクリプトで倱敗したした。
npm ERR これはおそらくnpmの問題ではありたせん。 䞊蚘の远加のログ出力がある可胜性がありたす。

npm ERR この実行の完党なログは、次の堎所にありたす。
npm ERR /Users/ZehuaChen/.npm/_logs/2018-05-17T21_30_47_624Z-debug.log
`` ``

アップデヌト

uwsパッケヌゞを手動でむンストヌルしたしたが、機胜しおいるようです。 私のような初心者がこれを理解するのは本圓に難しいので、誰かがREADMEファむルたたはpackage.jsonを曎新できたすか

最も参考になるコメント

だから私はこれず同じ問題を抱えおいたしたが、理由はたったく異なりたす。 珟圚、npm uwsから最新のsocket.ioサヌバヌパッケヌゞをむンストヌルするず、芋぀かりたせん。

これは、uwsの発行元が最近、実際のコヌドDをすべお削陀する空のパッケヌゞをアップロヌドしたために発生しおいたす。

これを修正するには、砎壊されおいない最埌のリリヌスをむンストヌルしたす

糞远加[email protected]
npm install [email protected]

空の/非掚奚のパッケヌゞぞのリンク https //www.npmjs.com/package/uws

redditからの掞察に満ちた背景情報 https //www.reddit.com/r/node/comments/91kgte/uws_has_been_deprecated/

䜕が起きおいるのかを理解するのに時間がかかったので、この問題を怜玢したずきに衚瀺される䞊䜍のいく぀かの結果にこれを投皿したす。これにより、誰かが時間を節玄できるこずを願っおいたす。

党おのコメント20件

私も同じ譊告を受けおいたす

WARNING in ./~/ws/lib/BufferUtil.js
Module not found: Error: Can't resolve 'bufferutil' in '/Users/Ian/Code/ianpaschal/forge-server/node_modules/ws/lib'
 @ ./~/ws/lib/BufferUtil.js 35:21-42
 @ ./~/ws/lib/Sender.js
 @ ./~/ws/index.js
 @ ./~/engine.io/lib/server.js
 @ ./~/engine.io/lib/engine.io.js
 @ ./~/socket.io/lib/index.js
 @ ./src/server.js

WARNING in ./~/ws/lib/Validation.js
Module not found: Error: Can't resolve 'utf-8-validate' in '/Users/Ian/Code/ianpaschal/forge-server/node_modules/ws/lib'
 @ ./~/ws/lib/Validation.js 10:22-47
 @ ./~/ws/lib/Receiver.js
 @ ./~/ws/index.js
 @ ./~/engine.io/lib/server.js
 @ ./~/engine.io/lib/engine.io.js
 @ ./~/socket.io/lib/index.js
 @ ./src/server.js

WARNING in ./~/socket.io/lib/index.js
113:11-32 Critical dependency: the request of a dependency is an expression
// package.json
"webpack": "^2.7.0",
"socket.io": "^2.1.0",

なんずか解決できたしたか 同じ問題がありたす。

いいえ。 これは単なる譊告であるため、醜いコン゜ヌル出力以倖の効果はありたせんが、それでも存圚したす。

npm startからあなたを止めるこずはありたせん、ただ゚ラヌを無芖しおください。

ノヌドのみをコンパむルする堎合は、オプションを远加する必芁がありたす。そうすれば、゚ラヌは消えたす。
構成ファむルに次のものを远加する必芁がありたす。

{
        ...
        target: 'node'
       ...
}

それ以倖の堎合は、 Webのみをコンパむルするため、オプションを枡す必芁はありたせんdefault = 'web'たたはtarget = 'web'が、 'uws'はバンドルから陀倖する必芁がありたす。これは、ブラりザ。
この堎合、次を远加する必芁がありたす。

{
        ...
        externals: {
            uws: "uws"
        },
       ...
}

@ pirix-ghこれは問題ではないようです。

私の蚭定から

const Webpack = require( "webpack" );

module.exports = {
    target: "node",
    node: {
        __dirname: true,
        __filename: true,
    },
    entry: {
        main: "./src/server.js",
    },
    plugins: [
        new Webpack.EnvironmentPlugin( [
            "NODE_ENV",
        ] ),
        new Webpack.IgnorePlugin( /uws/ )
    ],
};

@ianpaschalわかりたした。では、プロゞェクトを別のプロゞェクトにむンポヌトしおいるのではないでしょうか。

_Project_1_

  • Index.js_Socket.IO_をむンポヌトしたす

_Project_2_

  • Index.jsむンポヌト_Project_1_

WebpackProject_2をコンパむルしたす
-> Project_2にモゞュヌルが芋぀かりたせん

これは、䟝存関係がProject_2で怜玢されおいるが、Project_1がそれを保持しおいるために発生する可胜性がありたす。
これに察する解決策は、䞍足しおいる䟝存関係をむンストヌルするこずです。
たたは、Project_1を公開しおから、䟝存関係ずしおProject_2にむンポヌトしたす。

これを行うこずにより、䞊蚘で提䟛した゚ラヌを再珟するこずができたす

なぜうたくいかなかったのかを説明し、別のアプロヌチを提䟛しおくれおありがずう

@ Zehua-Chen Pleasure、問題が解決したこずを願っおいたす。 垞に公開するのがいかに面倒かを知っおいるので...分割プロゞェクトのこの堎合、開発䞭に䜿甚できたす。

npx @babel/node src/index.jsたたは
node -r @babel/register src/index.js

たたはバヌゞョンによっおは

npx babel-node src/index.jsたたは
node -r babel-register src/index.js

䟝存関係を適切に解決しお実行したすが、本番環境には適しおいないこずに泚意しおください。
本番環境で䜜業しおいる堎合は、パッケヌゞを個別に公開し、代わりにnpmを䜿甚する必芁がありたす。

私は今倚くの研究をしたしたが、それでも問題ずその解決方法を理解しおいたせんでした。
私は単䞀のプロゞェクトを持っおいたす。socket.ioを䜿甚し、webpackでビルドするず垞に同じ問題で倱敗したす。

ERROR in ./node_modules/engine.io/lib/server.js
Module not found: Error: Can't resolve 'uws' in 'xxxxxxxx/node_modules/engine.io/lib'
 @ ./node_modules/engine.io/lib/server.js 107:27-41
 @ ./node_modules/engine.io/lib/engine.io.js
 @ ./node_modules/socket.io/lib/index.js

package.json

"dependencies": {
      "express": "^4.16.3",
      "socket.io": "^2.1.1"
   },
   "devDependencies": {
      "tslint": "^5.11.0",
      "typescript": "2.9.2",
      "uglifyjs-webpack-plugin": "^1.2.7",
      "webpack": "^4.16.4",
      "webpack-cli": "^3.1.0"
   },

webpack.config.js

const path = require('path');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
   target: 'node',
   mode: 'development',
   entry: './dist/index.js',
   output: {
      filename: 'index.js',
      path: path.resolve(__dirname, 'dist/00-bundle')
   },
   optimization: {
      minimizer: [
         new UglifyJsPlugin()
      ]
   }
};

@btxtigerこれは、ノヌドを操䜜するずきに䟝存関係をバンドルしおはならないためですpackage.jsonでむンストヌルされたす。 これは、プロゞェクトをWebにバンドルするため、webpackのデフォルトの動䜜です。

これをconfに远加するず、 package.jsonを読み取っお䟝存関係が陀倖されたす

const nodeExternals = require('webpack-node-externals');

module.exports = {
...
mode: 'development',
...
externals: [nodeExternals({
               modulesFromFile: true
          })];
...
}

このようにしお、ほが公開可胜なパッケヌゞを取埗したす

@ pirix-ghありがずう わかりたした、それは理にかなっおいたす。 package.jsonを介しおモゞュヌルをむンストヌル/曎新するこずなく、サヌバヌにプッシュするだけでよい完党なバンドルを䜜成できるこずを望んでいたした。 これが本圓に䞍可胜かどうかはただわかりたせんが、socket.ioでの゚ラヌを陀いおは機胜しおいるようです。

@btxtigerロヌカルでそれを行うこずができたす。 䟝存関係のルヌルに違反するため、NPMで公開しないでください。
uwsは、Node.jsでラップされたC ++モゞュヌルであるため、 npm iを䜿甚するずオンザフラむでコンパむルされたす。
したがっお、暙準のjsのようにバンドルするこずはできず、むンストヌルする必芁がありたすこれにより、OSのコンパむルがトリガヌされたす。
そのため、垞にNPM䟝存関係システムを䜿甚する必芁がありたす。そうすれば、その質問を自問する必芁はありたせん。

それでもこれを実行したい堎合は、uwsを陀倖しおみおください。

{
        ...
        externals: {
            uws: "uws"
        },
       ...
}

@ pirix-ghすばらしい、説明しおくれおありがずう。 最適化されたpackage.jsonに移動したした。これは、webpackでビルドするずきにすべおの開発者の䟝存関係を陀倖し、開始する前に垞にnpminstallを実行したす。 今のずころ最良の解決策のようです。

完党にデバッグする時間がありたせんでしたが、 karma^2.0.0からkarma^3.0.0にアップグレヌドするず、Webpackビルドで次の゚ラヌが発生したした。

Module not found: Error: Can't resolve 'uws'

したがっお、Karmaを2.0.0に保぀こずが、私にずっおの解決策でした。

socket.ioをむンポヌトたたは必芁ずするたびに、この問題が発生したす。 uwsを手動でむンストヌルしようずしたしたが、Nodeはただuwsを解決できたせん。

私もこの問題を抱えおいたすが、解決方法がわかりたせん。

Webpack /フロント゚ンドの人々、WebSocketサヌバヌに接続するためにクラむアント偎アプリでSocketIOが必芁な堎合は、 https //github.com/socketio/socket.io-clientを䜿甚できたす。

私のModule not found: Error: Can't resolve 'uws'の問題を解決したした

だから私はこれず同じ問題を抱えおいたしたが、理由はたったく異なりたす。 珟圚、npm uwsから最新のsocket.ioサヌバヌパッケヌゞをむンストヌルするず、芋぀かりたせん。

これは、uwsの発行元が最近、実際のコヌドDをすべお削陀する空のパッケヌゞをアップロヌドしたために発生しおいたす。

これを修正するには、砎壊されおいない最埌のリリヌスをむンストヌルしたす

糞远加[email protected]
npm install [email protected]

空の/非掚奚のパッケヌゞぞのリンク https //www.npmjs.com/package/uws

redditからの掞察に満ちた背景情報 https //www.reddit.com/r/node/comments/91kgte/uws_has_been_deprecated/

䜕が起きおいるのかを理解するのに時間がかかったので、この問題を怜玢したずきに衚瀺される䞊䜍のいく぀かの結果にこれを投皿したす。これにより、誰かが時間を節玄できるこずを願っおいたす。

私にずっおは、CLIたたは構成を介した--target nodeが重芁であり、すべおの問題を解決したした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡

関連する問題

リク゚ストのクレデンシャルモヌドが「include」の堎合、レスポンスの「Access-Control-Allow-Origin」ヘッダヌの倀はワむルドカヌド「*」であっおはなりたせん。 したがっお、オリゞン 'http// localhost3000'はアクセスを蚱可されおいたせん。 XMLHttpRequestによっお開始されたリク゚ストのクレデンシャルモヌドは、withCredentials属性によっお制埡されたす。
akasrai picture akasrai  Â·  3コメント

MichaelJCole picture MichaelJCole  Â·  3コメント

shashuec picture shashuec  Â·  4コメント

varHarrie picture varHarrie  Â·  3コメント

jloa picture jloa  Â·  4コメント