はにおかさいのブログ

コーディング

Nodejs を Windowsで使ったとき、sleepがbuildできなかったのをどうにかした件

ある先輩に頼まれて、シラバス取得のスクリプトを実行する際に、詰まったことをメモ。

コードをもらった時点では、以下のようなエラーが。

node index.js
Error: \\?\Z:\users\desktop\getSyllabus\getSyllabus\node_modules\sleep\build\Release\node_sleep.node is not a valid Win32 application.

バイナリがMacとか何だなと思って、sleepをインストールし直しました。

npm install sleep
PS Z:\users\desktop\getSyllabus\getSyllabus> node index.js
internal/modules/cjs/loader.js:716
    throw err;
    ^

Error: Cannot find module './build/Release/node_sleep.node'
Require stack:
- Z:\users\desktop\getSyllabus\getSyllabus\node_modules\sleep\index.js
- Z:\users\desktop\getSyllabus\getSyllabus\httpController.js
- Z:\users\desktop\getSyllabus\getSyllabus\index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:713:15)
    at Function.Module._load (internal/modules/cjs/loader.js:618:27)
    at Module.require (internal/modules/cjs/loader.js:771:19)
    at require (internal/modules/cjs/helpers.js:68:18)
    at Object.<anonymous> (Z:\users\desktop\getSyllabus\getSyllabus\node_modules\sleep\index.js:1:13)
    at Module._compile (internal/modules/cjs/loader.js:868:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:879:10)
    at Module.load (internal/modules/cjs/loader.js:731:32)
    at Function.Module._load (internal/modules/cjs/loader.js:644:12)
    at Module.require (internal/modules/cjs/loader.js:771:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'Z:\\users\\desktop\\getSyllabus\\getSyllabus\\node_modules\\sleep\\index.js',
    'Z:\\users\\desktop\\getSyllabus\\getSyllabus\\httpController.js',
    'Z:\\users\\desktop\\getSyllabus\\getSyllabus\\index.js'

ぜんぜんsleepがインストールできず。

解決法

npm installではなくyarn でインストールすれば、Win32でもちゃんとsleepモジュールが使えるようです

yarn
yarn add sleep

でyarn add sleepでエラーは出ながらも、スクリプト側でsleepが呼び出せました。