Node.js で jQuery を使う

jQuery の DOM とは関係のない Deferred の動きを確認するために jQuery を Node.js で動かしたかったのだけど、下記によるとそういう場合でも window オブジェクトが必要とのこと。

ただ、この通りにやってもなんか動きませんでした。

下記のどちらかで動かせられました。

jsdom

yarn add jquery jsdom
const { JSDOM } = require('jsdom')
const $ = require('jquery')(new JSDOM().window)

$.Deferred().resolve(1).promise()
    .then((v) => { console.log(v) })

jsdom-no-contextify

yarn add jquery jsdom-no-contextify
const $ = require('jquery')(require('jsdom-no-contextify').jsdom().parentWindow)

$.Deferred().resolve(1).promise()
    .then((v) => { console.log(v) })