1. ホーム
  2. node.js

[解決済み] [email protected] インストールスクリプト 'node install.js' で失敗しました。

2022-02-19 17:40:37

質問

Windows 7 マシンに phantomjs をインストールしようとしているのですが、このエラーが発生しました。

npm ERR! Windows_NT 6.1.7601  
npm ERR! argv "C:\\Program Files (x86)\\nodist\\v\\nodev5.5.0\\node.exe"   "C:\\Program Files (x86)\\nodist\\bin\\node_mod  
ules\\npm\\bin\\npm-cli.js" "install"  
npm ERR! node v5.5.0  
npm ERR! npm  v3.10.9  
npm ERR! code ELIFECYCLE  

npm ERR! [email protected] install: `node install.js`  
npm ERR! Exit status 1  
npm ERR!  
npm ERR! Failed at the [email protected] install script 'node   install.js'.  
npm ERR! Make sure you have the latest version of node.js and npm installed.

phantomjs の github repo には、同じような、または、同じような問題で、多くの issue が記録されています。 これ SO questionbut none of it is help in my case.

私のマシンはこのような状態です

  • にローカルにphantomjsをインストールしています。 C:\npm

    2.1.1-windows しかし、npm installを実行すると、常にダウンロードでインストールしようとします。私の会社のプロキシが直接ダウンロードをブロックしています。 --phantomjs_cdnurl ここに書かれているスイッチ https://www.npmjs.com/package/phantomjs#deciding-where-to-get-phantomjs

  • コマンドを実行すると、正常に動作する phantomjs -v
    2.1.1

しかし npm install 私のプロジェクトでは、phantomjsをインストールしようとして、上記のエラーに遭遇します。

Considering PhantomJS found at C:\Program Files (x86)\nodist\bin\phantomjs.CMD Found PhantomJS at C:\Program Files (x86)\nodist\bin\phantomjs.CMD ...verifying Error verifying phantomjs, continuing { [Error: Command failed: C:\Program Files (x86)\nodist\bin\phantomjs.CMD --version

phantomjs.CMD --version を実行しようとしていますが、これも失敗しています。

Error verifying phantomjs, continuing { [Error: Command failed: C:\Program Files (x86)\nodist\bin\phantomjs.CMD --versio
n
internal/child_process.js:274
  var err = this._handle.spawn(options);
                         ^

TypeError: Bad argument
    at TypeError (native)
    at ChildProcess.spawn (internal/child_process.js:274:26)
    at exports.spawn (child_process.js:362:9)
    at Object.<anonymous> (C:\Program Files (x86)\nodist\bin\node_modules\phantomjs-prebuilt\bin\phantomjs:22:10)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:139:18)
]
  killed: false,
  code: 1,
  signal: null,
  cmd: 'C:\\Program Files (x86)\\nodist\\bin\\phantomjs.CMD --version' }

解決方法は?

一時的な回避策として、私は --ignore-scripts を使用してインストールすることができます。

npm install [email protected] --ignore-scripts

また、github repoに同じ内容のissueを記録しました。

https://github.com/Medium/phantomjs/issues/649

編集

この問題は、私が使用していたビルドプロセススクリプトの一部であり、それは他のものの束と毎回npmのクリーンアップとインストールを行います。私はこの問題を調べるためにいくつかの時間を得ました、そしてそれは私の会社のプロキシがからのダウンロードをブロックしているようです。 https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-windows.zip . 以前から知っていて、手動で phantomjs バイナリをインストールし、システムパスに追加しましたが、npm install は以下のログに示すように、まだローカルにダウンロードしようとしています。

Considering PhantomJS found at C:\npm\phantomjs-2.1.1-windows\bin\phantomjs.EXE
Looks like an `npm install -g` on windows; skipping installed version.

私の会社のプロキシは、すべての phantomjs CDN の URL もブロックしていました ( https://www.npmjs.com/package/phantomjs )

私が使った回避策は phantomjs-2.1.1-windows.zip にコピーし、それを C:\Users<username>\AppDataLocalTempeters Phantomjs-2.1.1-windows.zip もし、誰かが一時ディレクトリを削除すると、問題は再発します。これでも回避策なのですが、コーポレートプロキシは明らかな理由でブロック解除できません :)

これが誰かの役に立つといいのですが