回答編集履歴
2
文章の体裁を整え,tyotto
answer
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
色々と情報が足りませんので、エスパー解答します。
|
2
|
-
どれどれ…?
|
3
|
-
|
4
1
|
> ```Bash
|
5
2
|
/home/vagrant/socket.io/node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js:3
|
6
3
|
const http = require('http');
|
@@ -8,39 +5,36 @@
|
|
8
5
|
SyntaxError: Use of const in strict mode.
|
9
6
|
```
|
10
7
|
|
11
|
-
わかりました。
|
12
|
-
|
8
|
+
Vagrant + VirtualBoxで立ち上げた仮想マシン内のCentOSですね?
|
9
|
+
例えばMacでHomebrew等を利用してNode.jsを導入しても、
|
10
|
+
仮想マシンとは違う環境になってしまうので、Node.jsの環境は共有されません。
|
13
11
|
|
14
|
-
MacでHomebrew等を利用してNode.jsを導入しても、
|
15
|
-
仮想マシンとは違う環境になってしまうので、入れ直しになってしまいます。
|
16
|
-
|
17
12
|
---
|
18
13
|
|
19
14
|
> 調べるとnode.jsのバージョン(v0.10.48)が古くsocket.ioに対応していないために起こるエラーであるとのことでした
|
20
15
|
|
16
|
+
おっしゃる通りNode.jsのバージョンが古い事が原因です。
|
17
|
+
|
21
18
|
エラーメッセージを読む限りだと…
|
22
|
-
|
19
|
+
エラーが出ているのはsocket.ioライブラリの中で発生しています。
|
23
20
|
`node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js`
|
24
21
|
|
25
22
|
具体的な原因はuws.jsファイルの3行目、`const`を使って変数宣言していますが、
|
26
23
|
Node.jsのバージョンが古すぎてまだ未対応の書式と言っています。
|
27
24
|
つまり、そもそもNode.jsがコードの解析を諦めてエラーを出しているので実行すらしていません。
|
28
25
|
|
29
|
-
お見事!おっしゃる通りNode.jsのバージョンが古い事が原因です。
|
30
|
-
|
31
26
|
---
|
32
27
|
|
33
28
|
> インストールをし直しても、npmから更新をかけても、バージョンが0.10.48から更新されません。
|
34
29
|
|
35
|
-
CentOS
|
30
|
+
CentOSが採用しているパッケージ管理ソフト、yumはソフトのバージョンを枯れた状態に保つ事を好みます。
|
31
|
+
なのでyumのパッケージで単純にアップデートを繰り返しても、Node.jsパッケージが更新される事はありません。
|
36
|
-
|
32
|
+
ですので、質問文の状況に陥ってしまい、いくらyumをアップデートしても古いバージョンのNode.jsしかインストールされなかったわけですね。
|
37
|
-
この辺の仕様が面倒でCentOSは個人的に嫌いです。
|
38
33
|
|
39
|
-
さて、私の好き嫌いはどうでも良いのでアップデート方法を紹介します。
|
40
34
|
まずは古いNode.jsは下記の記事を参考にアンインストールしましょう。
|
41
35
|
[CentOS 6.xにLTS(4.3.0)のnode.jsをインストールする](https://qiita.com/zaburo/items/a69ab94f707454a5bbe7)
|
42
36
|
|
43
|
-
おっと、インストールはまだしないでください
|
37
|
+
おっと、インストールはまだしないでください。
|
44
38
|
[Node.jsの公式サイトのダウンロード](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)で、最新バージョンのNode.jsのインストール方法が紹介されています。
|
45
39
|
|
46
40
|
---
|
@@ -48,4 +42,5 @@
|
|
48
42
|
おまけ
|
49
43
|
|
50
44
|
私は[nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールを利用しています。
|
51
|
-
ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。
|
45
|
+
ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。
|
46
|
+
NVMといったパッケージ管理ツールもありますので、色々調べてみてください。
|
1
CentOSのバージョンアップの詳細を記載
answer
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
色々と情報が足りませんので、エスパー解答します。
|
2
2
|
どれどれ…?
|
3
3
|
|
4
|
-
|
5
4
|
> ```Bash
|
6
5
|
/home/vagrant/socket.io/node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js:3
|
7
6
|
const http = require('http');
|
@@ -10,16 +9,43 @@
|
|
10
9
|
```
|
11
10
|
|
12
11
|
わかりました。
|
13
|
-
その環境はVagrant + VirtualBoxで立ち上げたCentOSですね?
|
12
|
+
その環境はVagrant + VirtualBoxで立ち上げた仮想マシン内のCentOSですね?
|
14
|
-
確かにCentOSはyumのパッケージが勝手に更新されませんので、
|
15
|
-
何も対策せずにyumのパッケージでNode.jsをインストールすると、非常に古いバージョンのNode.jsがインストールされてしまいます。
|
16
13
|
|
17
|
-
|
14
|
+
MacでHomebrew等を利用してNode.jsを導入しても、
|
18
|
-
と
|
15
|
+
仮想マシンとは違う環境になってしまうので、入れ直しになってしまいます。
|
19
16
|
|
17
|
+
---
|
18
|
+
|
19
|
+
> 調べるとnode.jsのバージョン(v0.10.48)が古くsocket.ioに対応していないために起こるエラーであるとのことでした
|
20
|
+
|
21
|
+
エラーメッセージを読む限りだと…
|
22
|
+
なるほど、エラーが出ているのはsocket.ioライブラリの中ですね。
|
23
|
+
`node_modules/socket.io/node_modules/engine.io/node_modules/uws/uws.js`
|
24
|
+
|
20
|
-
uws.jsファイルの3行目、`const`を使って変数宣言していますが、
|
25
|
+
具体的な原因はuws.jsファイルの3行目、`const`を使って変数宣言していますが、
|
21
26
|
Node.jsのバージョンが古すぎてまだ未対応の書式と言っています。
|
22
|
-
|
27
|
+
つまり、そもそもNode.jsがコードの解析を諦めてエラーを出しているので実行すらしていません。
|
23
28
|
|
29
|
+
お見事!おっしゃる通りNode.jsのバージョンが古い事が原因です。
|
30
|
+
|
31
|
+
---
|
32
|
+
|
33
|
+
> インストールをし直しても、npmから更新をかけても、バージョンが0.10.48から更新されません。
|
34
|
+
|
35
|
+
CentOSはyumのパッケージが勝手に更新されませんので、
|
24
|
-
も
|
36
|
+
何も対策せずにyumのパッケージでNode.jsをインストールすると、非常に古いバージョンのNode.jsがインストールされてしまいます。
|
37
|
+
この辺の仕様が面倒でCentOSは個人的に嫌いです。
|
38
|
+
|
39
|
+
さて、私の好き嫌いはどうでも良いのでアップデート方法を紹介します。
|
40
|
+
まずは古いNode.jsは下記の記事を参考にアンインストールしましょう。
|
41
|
+
[CentOS 6.xにLTS(4.3.0)のnode.jsをインストールする](https://qiita.com/zaburo/items/a69ab94f707454a5bbe7)
|
42
|
+
|
43
|
+
おっと、インストールはまだしないでくださいね。
|
44
|
+
[Node.jsの公式サイトのダウンロード](https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora)で、最新バージョンのNode.jsのインストール方法が紹介されています。
|
45
|
+
|
46
|
+
---
|
47
|
+
|
48
|
+
おまけ
|
49
|
+
|
25
|
-
[nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールを
|
50
|
+
私は[nodebrew](https://qiita.com/kentana20/items/05f1a4af9812398863fa)というNode.jsのバージョン管理ツールを利用しています。
|
51
|
+
ちょっと初期導入に癖がありますが、バージョンにすぐ追従出来るので便利に活用しています。
|