I have this at the end of my .emacs:
(setq-default indent-tabs-mode nil)
(setq tab-stop-list (number-sequence 2 120 2))
It works fine in other modes – whenever I tab, it adds two spaces. But in js2-mode, it adds 4.
You can set js2-basic-offset to 2.
M-x customize-variablejs2-basic-offsetThen Apply and Save button in the customize option buffer. This will add an item to set the variable into .emacs or init.el file.
Little late here, but if you're like me and keep configurations for major modes in separate files, you can add the following line and it works as well.
(add-hook 'js2-mode-hook (lambda () (setq js2-basic-offset 2)))
For me js2-basic-offset is an alias to js-indent-level, so I had to change the latter to make it work.