🫠

cryptoをインポートする時に困った話

2023/10/06に公開

インポート

import crypto from 'node:crypto'

で、インポートしようとしたら、
「モジュール '"node:crypto"' に既定エクスポートがありません。」と怒られた。

助けてCopilot

vscodeのエラー表示部から、拡張機能として追加した「GitHub Copilot」のクイックフィックスを利用したところ

import * as crypto from 'crypto'

に修正され、インポートできた。

既定エクスポートがない場合、

import * as ~

とするといいらしい。

色々調べてもよく分からなかったことも、Copilotくんに頼めばサクッと解決してくれる。
頼りになるなぁ。

おしまい

おまけ

import * as crypto from 'node:crypto'

でも大丈夫だが、'node:'はなくてもいいらしい。

import { createHash, randomBytes } from 'crypto'

として、使うものだけインポートすることもできる。

その場合、呼び出しは、

crypto.createHash()~

ではなく

createHash()~

とする。

なお、上記のような別の対応方法も、Copilotくんが候補としてあげてくれる。
(クイックフィックス実行後、更新ボタンを押すと、別候補が出力される。)

Copilot、すごい。

Discussion