teamikl / ninjam-chat

NINJAM Chat gateway
http://teamikl.github.io/ninjam-chat
2 stars 1 forks source link

LiveScript 1.2.0 -> 1.3.0 更新で後方互換を壊す変更 #25

Closed teamikl closed 9 years ago

teamikl commented 9 years ago

LiveScript のバージョンが更新され、互換性のない構文の変更がありました。

require! { A : B } が require! { B : A } になったため、モジュールの読み込みに失敗。

但し、今回の問題では、 グローバルにインストールした LiveScript と、プロジェクト内にインストールされた LiveScript があり、 npm run chat-server では依存性管理のされていない、 グローバルの LiveScript のコマンドを使ってたことに起因します。

解決策

LiveScript v1.2.0 でチャットサーバを起動します。

teamikl commented 9 years ago

問題のコード

require! {
  ws: "websocket.io"
}

var ws = require("websocket.io");

と翻訳されていたものが (LiveScript 1.2.0)

var websocket = require("ws");

と翻訳されるようになった。(LiveScript 1.3.0)

wswebsocket.io 内部で使われてる実在モジュールだが、 server.ls 内では変数名として利用していた為に問題が複雑化。

teamikl commented 9 years ago

./src/livescript/client.ls からの client.js 生成にも LiveScript が使われるが、 クライアント側の JS では、今回問題のあった require文は使っていないので、 appの再生成 gulp build は不要です。