背景
趣味でプログラミングをやっていたりはしましたが、今年に入ってからは業務でもプロダクト開発に関わるようになってきました。その過程で、アルゴリズムやTDDなどの一通りの勉強はしましたが、まだまだ修行が足りないと感じていました。そんな時に、下記TweetとBlog記事を読んでleetcodeの問題をTDDを使いながら解いていけばいいじゃんと安易に考え実践することにしました。
- https://twitter.com/sugyan/status/1200605848591982592?s=20
- https://panda-program.com/posts/test-driven-development
TL;DR
- leetcode+vscode+node.js+jestの環境を構築したが
- vscode-leetcodeのプラグインでSignInができず
- 苦戦したけどGitHubのIssueをみてmanualで設定したらなんとかなった
環境
2019年12月4日時点の情報なので、その後修正されれば同じ問題は起こらないと思います
- vscode 1.40.2
- node.js 12.4.0
- vscode-leetcode 0.15.7
- leetcode-cli 2.6.2
- npm 6.11.3
環境構築
JavaScript+Jestを考えていたので下記を利用しました
手順に従ってSetupを行います
vscode-leetcodeのSignIn
vscode-leetcodeをログインすると左側のペインにleetcodeのアイコンが現れるのでそれをクリックすることで「Sign in to LeetCode」を実行できます。
現れた入力画面にユーザー名(またはメールアドレス)とパスワードを入力することでSignInできるようです
しかしながら、下記のようなエラーが表示されてSignInができません
v12.4.0
Active Name Version Desc
----------------------------------------------------------------------------------------------------
✔ solution.discuss 2019.02.03 Plugin to fetch most voted solution in discussions.
✔ company 2017.12.18 Plugin to query by company for free user.
✔ cache default Plugin to provide local cache.
✔ retry default Plugin to retry last failed request if autologin.enable is on.
✘ leetcode.cn 2018.11.25 Plugin to talk with leetcode-cn APIs.
✔ leetcode default Plugin to talk with leetcode APIs.
[ERROR] You are not login yet?
login: pass: - Signing in leetcode.com
[ERROR] invalid password?
原因
その後再度アカウント作成を行ったり色々してましたが、最終的には依存ライブラリが壊れていることが原因でした
- vscode-leetcodeはleetcode-cliに依存している
- leetcode-cliのIssueを確認すると二週間以内の日付で複数の同様の事象が報告されている
回避策
ChromeブラウザでLeetCodeにログインし、開発者ツールのApplicationタブからCookieの下記NameのValueをメモする
下記リンク先に従って、~/.lc/leetcode/user.jsonにメモした値を入力する
{
"login": "[username]",
"loginCSRF": "",
"sessionCSRF": "[copied from csrftoken]",
"sessionId": "[copied from LEETCODE_SESSION]"
}
その後再度vscodeを開くと下記のようにログイン済みの状態となります
まとめ
これでやっとleetcodeに入門できるぞっ