- 投稿日:
ESM化が叫ばれて久しいですが、未だにJestはESMとCJSが混在したコードを処理してくれません。
Getting StartedにもSWCに対する言及がないので、きっともう忘れられているのでしょう。swc-project/jestの方も特にやる気はなさそうだし、やりたければ自分でPR書きましょうって感じだと思います。きっと。
確認環境
node_modules配下にESMで作られたモジュールが存在し、コードはTypeScript、トランスパイルにはSWCを利用する。
Env | Ver |
---|---|
@swc/cli | 0.1.62 |
@swc/core | 1.3.92 |
@swc/jest | 0.2.29 |
@swc/register | 0.1.10 |
jest | 29.7.0 |
typescript | 5.2.2 |
やったけど意味がなかったこと
package.json
のtype
をmodule
にするjest.config.js
のtransformIgnorePatterns
にESMモジュールのパスだけ除外する設定を書く- 上記に加えて
transform.jsc.path
にpkg-name: ['node_modules/pkg-name']
を追記する node --experimental-vm-modules node_modules/jest/bin/jest.js
で実行する- 多少マシになったがコケるものはコケる
- ESMで書かれたモジュールを丸ごとモックする
- 一切効果なし
所感
多分Webpackでバンドルしてnode_modules
の中身も外も関係ない状態にするのが一番無難なのではないかと思いました。
Node.jsの組み込みテストランナーにすれば解決するかな?と思ったものの、こちらは現状SWCでは使えそうにないので諦めました。
参考までに以下のコマンドで走らさせられます。
node --require @swc/register --test ./src/**/*.spec.ts
取り敢えずESMに引っかったモジュールはCJS時のバージョンを維持しておくことにしましたが、このままだとSWC使えないし、なんとかなって欲しいですね。Webpack使えば解決できるのはわかるんですが、このために使いたくないので、テストを重視する場合、Vitestを持つViteが有力候補になって来そうです。
2024-02-17追記
esbuild + Node.js built-in test runnerの組み合わせであればテストはできるが肝心の実行ができず無意味だった
- 投稿日:
この話には賛否両論あると思うが、個人的に良いと思っている部分を話す。この文化は集団の和を保つ上では非常に有効に思う。
まず日本には「暗黙の了解」と言うものがかつてあった。今でも残っているものはあると思うが、大半は消失しただろう。これは多くの人が知っていることによってお互いが平等に快適に暮らせるものであったと考える。何故なら皆そのことだけは意識するからだ。
例えば電車の走る向きが変わった時に、席の向きを変えるのがあると思うが、アレを一人だけ拒んだ場合どうだろう?その人はいいかも知れないが、他の人は迷惑するだろう。勿論必ず迷惑するとは限らないが、迷惑するかしないかを標準化出来る効力はあると思う。
これが思想の強制と言われてしまうと返す言葉もないのだが、集団生活にはルールが必要だ。これは全ての文化でそうだ。日本に限らない。例えば法律がない国はない。どんな国にでも法律はある。但し法律を杓子定規に適用したり、個々人のマナーにまで適応するのはいささか無理がある。
そこで「暗黙の了解」である。民間人が暗黙の了解を持ち合い、それによって必要最低限のコミュニケーションで快適な生活ができるというのは実に合理的であり、素晴らしいことだ。そこには余計な配慮はいらない。勿論、一定数いる無理解な人物に対しては労力が掛かるが、おおよそ大抵のケースでは不要だろう。
しかし昨今ではこの「暗黙の了解」は個人主義の否定だとか、全体主義と言われ忘れられ始めている。結果として何をするにも相手の了承を得ないといけなくなり、互いに面倒になってしまったと感じる。しかも下手に声をかければ相手が逆上してきて加害されることさえないとは言えない世の中だ。
意見の押しつけだとか、個の否定と言う人もいるかもしれないが、果たしてどちらの方がより幸せになれるだろうか?もし、貴方が誰の力を借りずとも山奥で一人で生活できると言うのであれば咎めはしないが、現実は電車や町中、仕事先や学校などで人と関わらざるを得ない人が大半ではないだろうか?
私はもっと昭和に戻るというか、そういった昔の文化を取り戻していけば昨今言われているストレス社会が緩和され、人々が暗黙的に協調し合うようになり、もっと楽に生きていけるのではないかと思う。
各々が好き勝手言っている社会は様々な衝突が多く、気苦労に耐えず、それはきっと大変なのだと思う。そういう意味で私はこの「暗黙の了解」と言うのはあったほうが良いのではないかと思っている。
勿論、この制度も完璧なものではなく、銀の弾丸にはなり得ない、結局のところこの手の選択肢という物は何を優先したときに一番合理的かと言うのが求めるところにあると思う。治安が悪く、ストレスフルであることを是とするなら個人主義も良いだろうし、治安を良くし、ストレスを減らし、協調的で和のある社会を目指すのであれば全体主義は一つの解になるだろうと言うのが私の見解だ。
日本はかつて国際社会から、その平和さ、治安の良さを見習うべきだと賞賛されていた国だったと思うが、欧米文化の浸透により、そういった美徳はことごとく失われたと思っている。だからこそ、かつて日本を蝕んでいた「暗黙の了解」と言う文化を取り戻し、国際的にも異質な文化を持つ国に戻って欲しいと願っている。
勿論「暗黙の了解」だけで今言ったことの全てが解決するとは思わない。これは鍵の一つでしかなく、本質的にはもっと沢山のことが必要だとは思うが、本題とズレてくるので今回はここで締め括り、また追々話していければと思う。
- 投稿日:
ここ最近デジタル化が叫ばれて久しいが、私はアナログに回帰できないかということを少しずつ考えている。
理由としてはアナログは枯れており、変化の余地もなく、何とも繋がっていないからだ。だからこそ良いと言える。デジタルは常に新鮮かもしれないが、変わりすぎるし、繋がりすぎている。
特に何か不祥事や不謹慎な出来事があるとすぐに炎上し、総叩きになる。他にも少数意見が集まりすぎて大きな声になってしまう。あたかも全世界を代表するかのような声に成長することさえある。こういう繋がり過ぎに私は辟易している。もううんざりで、疲れてしまったのだ。正直、世界はもっと分断され、疎結合になったほうが良いと思う。
かと言って人生の大半を費やしたインターネットから出ていくつもりはない。多分死ぬまで居続けるだろう。しかし、デジタル世界だけでなく、アナログ世界も見ていきたい。可能な範囲で見識は広めていきたいと思った。古いのは悪なのか?私はそう思わない。温故知新である。古きから得られる知識もあるだろう。
ひとまず筆記具を買うことにした。デジタルで書くのも検索性の観点などで便利なのだが、映画館などでどうしても使えないケースがある。もしペンとメモ帳ならどうだろう?予告編の内容を気兼ねなくメモできるようになるかもしれない。書く時の音が気になるかもしれないが、それは試してみての話だ。普通満席でもなければ筆跡の音は聞こえないと思う。ペンと紙にもよるとは思うが、満席でも聞こえるかどうかは怪しい。
というわけで筆記具を購入した。今まで持っていなかったわけではないのだが、仕事用と自宅用しかなかったので、これはプライベートの外出用だ。
筆記具を入れるものも必要だ。便利なバッグインバッグやツールケースと迷ったが、筆箱にすることにした。
この筆箱は以前、JR岡山駅で見かけた時に買ったものだ。児島の唐琴にある高田織物という会社が製造しているもので、歴史を感じさせる一品だ。何より畳の縁で作られているというのが面白い。児島は縁のある土地というのもあり、購入した。
児島はいいところなので機会があったら是非来てみてほしい。今ではすっかり衰退してしまっているが、非常に重厚な歴史を持つ都市だ。衰退したと言っても小さな市程度の規模はあり、辺境のど田舎というほどではない。元々は市であるということもあり、現在でも一定の規模の都市を形成しており、下手な市よりは都会で、人口も多い。こじまさんぽという観光案内サイトもある。
話が逸れてしまったが、アナログへの回帰第一弾的なところで、これからは出先でメモを取るのにアナログな手段も使っていこうと思う。きっとフリーハンドはデジタルより使いやすい場面もあるはずだ。時にはアナログのメモをデジタルに直すのに文字起こしという無駄が生まれるかもしれないが、それも含めて楽しみたい。人生とは無駄であってなんぼだと最近考えるようになったのもある。何故なら無駄をなくすというのであれば、全てAIや機械に任せておき、人間などいないことが一番効率的だからだ。
恐らく人生とは無駄を楽しむものだと思う。少なくとも私は今のところそう思っているし、これからも必要に応じてアナログなものを取り入れていきたい。
- 投稿日:
写真を撮っていると、被写体が木や雲で隠れていたりして上手く撮れないことがある。一般的には綺麗に撮るために、どうにか障害物を退けたいと思うだろう。私もかつてはそうだった。
しかし、最近ではあまりそう思わなくなった。障害物も込みで、その景色なのではないかと。その障害物は一刻一刻と移ろいゆくものだ。例えば雲であれば移動したり、形を変えるし、重なり方も変わる。木であれば成長したり、紅葉したり、風で揺らいだりするだろう。そういった情景の変化というのは、その時々で違う表情を見せてくれる。そう考えると障害物というよりは、それもまた被写体の一つであり、一期一会の出会いなのではないかと、そう思うようになってきた。
そして、それこそが古来日本人が大切にしてきたであろう、侘び寂びなのではないかと。そんなことをふと思った。
- 投稿日:
ここ半年くらいでしょうか、見慣れないタイプのCAPTCHAを見る機会が増えてきました。MicrosoftやTwitter(X)周りのロボットガードでよく見るのですが、SPI試験に出てくる問題のような内容で、やや難解さがあります。正直これ解けない人はどうしたらいいのかなと要らぬ心配をしてしまうほどです。
問題は複数種類あり、右にある3Dの図を左の3D図の方角と一致させるものや、指示された図を選ぶものもあります。
以下は右にある3Dの図を左の3D図の方角と一致させるCAPTCHA問題、矢印ボタンをクリックして図を回転させ、方角を合わせる内容です。右側の図は毎回変わり、そもそも真っ直ぐではないケースもあるので地味にやりづらいです。
こちらは指示された図を選ぶ内容。正直初見では何言ってるのかよく分からなかった。
基本的に誤答すると問題が一問ずつ増えていくようで、失敗すればするほど途中で誤答する確率が増えるので結構しんどいやつです。
このサービス自体はArkose Labsが提供するArkose MatchKey Challengesというものらしく、サンプルを見るともっと難解そうな問題もあります。
Arkose Labsは以前にもPick-a-TileというCAPTCHAを提供していたようで、これも見覚えがあります。
問題例としては以下のようなもので、日本語表示だと「渦巻き銀河を選択してください」という感じの問題だったと記憶しているのですが、私は初めて見たとき「渦巻き銀河とは…?」となってしまいました。フィーリングで解きましたが、割と意味不明気味だと思います。
こういうのを見ているとインターネット空間は段々一般の人には使えないものになっていき、一定のリテラシーが求められる時代になっていくのではないかということを思いました。
まぁ元々ITというもの自体、一部のマニアがこぞって使ってたツールだったので、一般の方が使うには難しすぎるのではないかと感じることもあります。SNSでのトラブルや、各種事件などを見ていてもそう思いますし、IT業界で働いていても何も解っていない人は掃いて捨てるほどいます。
2024-01-14追記
新しいパターンが出てきたので記録しておく。因みにChatGPTの登録画面で出てきたものであるが、これはかなり難易度が高いのではないだろうか?
2024-02-29追記
Twitterの設定変更で出てきたやつ
2024-06-19追記
だいぶ難易度が上がってきたように感じる