問題
iconvをインストールしようとしたところ、
npm install iconv
以下のエラーが発生して node-gyp をインストールできない
npm error code 1
npm error path D:\Code\xxxxxxxxxx\src\node_modules\iconv
npm error command failed
npm error command C:\Windows\system32\cmd.exe /d /s /c node-gyp rebuild
npm error node:internal/modules/cjs/loader:1228
npm error throw err;
npm error ^
npm error
npm error at Module._resolveFilename (node:internal/modules/cjs/loader:1225:15)
npm error at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:173:12)
npm error at node:internal/main/run_main_module:28:49 {
npm error code: 'MODULE_NOT_FOUND',
npm error requireStack: []
npm error }
npm error
npm error Node.js v20.18.1
npm error A complete log of this run can be found in: C:\Users\xxxxx\AppData\Local\npm-cache\_logs\2025-01-10T15_25_05_531Z-debug-0.log
OS: Windows 10 Pro
開発: Visual Studio Code
Node.js: v20.18.1
対策
node-gyp はC++のソースコードをコンパイルするためコンパイラーが必要です。
Linuxの場合はGCC、Windowsの場合はVisual Studioのビルドツールを使用しますが、今回は Visual Studio 自体をインストールしてしまいます。
以下のことを行い対応しました。
・Python3 のインストール
・Visual Studio C++のインストール
・node_modules の削除
Python のインストール
Microsoft Store からPythonをインストールします。
Visual Studioのインストール
「C++によるデスクトップ開発」にチェックを入れる
node_modulesの削除
一旦削除しないと問題解消しなかったため、node_modulesフォルダを削除します。
結果
> npm install iconv
npm warn deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
npm warn deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
npm warn deprecated npmlog@6.0.2: This package is no longer supported.
npm warn deprecated npmlog@6.0.2: This package is no longer supported.
npm warn deprecated har-validator@5.1.5: this library is no longer supported
npm warn deprecated are-we-there-yet@3.0.1: This package is no longer supported.
npm warn deprecated are-we-there-yet@3.0.1: This package is no longer supported.
npm warn deprecated text-encoding@0.6.4: no longer maintained
npm warn deprecated slack@11.0.2: this library is no longer maintained; if you are interested in taking this package on let us know
npm warn deprecated gauge@4.0.4: This package is no longer supported.
npm warn deprecated gauge@4.0.4: This package is no longer supported.
npm warn deprecated node-uuid@1.4.8: Use uuid module instead
npm warn deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm warn deprecated @google/maps@0.4.6: Please use @googlemaps/google-maps-services-js instead.
added 968 packages, and audited 969 packages in 1m
72 packages are looking for funding
run `npm fund` for details
58 vulnerabilities (5 low, 24 moderate, 23 high, 6 critical)
npm audit fix
To address all issues possible (including breaking changes), run:
npm audit fix --force
Some issues need review, and may require choosing
a different dependency.
Run `npm audit` for details.
うおおお!成功!!!
参考
実は公式にちゃんと書いてあります。
node-gyp
Node.js native addon build tool. Latest version: 11.0.0, last published: a month ago. Start using node-gyp in your proje...
コメント