node.jsのuse strict周りのエラーについて


ES6やnodeのバージョンによっては思わぬ対応をするかも






node.jsのバージョンが低いことによる構文エラー


node4.x でletを使用していたりするとエラーが出るらしい

下のケースはブロックスコープを使用していた時のエラー
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

対象法は2つないし3つ


use strict(厳格モードを使用する)



ファイルの先頭に"use strict"をつける

letなどを使用しているファイルの先頭に"use strict"
ファイルの書き換えが面倒な場合は↓


起動オプションに--use_scriptをつける

node --use_strict index.js


上記2つは依存するパッケージに禁止されている記述がある場合(例えば8進数など)
エラーになってしまう。
http://qiita.com/ymaru/items/3c73af2cd4efe027a618
そういったパッケージがある場合は↓


node.jsのバージョンをあげる


6.x に変更するとエラーが発生しなくなる。

諸事情により変更できない場合はどうしようもない(少なくとも調べた範囲では)




参考



http://qiita.com/cortyuming/items/7bd29dea2a77addceb6b

2017年3月22日水曜日