2017-06-29 14 views
0

グローバルにインストールされたパッケージが利用可能なパッケージをローカルにインストールする際に問題があります。インクルードパスに問題があるようですが、これが何を引き起こしているのかわかりません。NPMがグローバルにインストールされたパッケージを完全に無視しています

システム:MacのOS X
ノード:8.3.1
NPM:私はそれをインストールしようとしていた場合5.0.4

出力npm list -g --depth=0

/usr/local/lib 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
`-- [email protected] 

のために最初に言及node-gyp警告とは異なり、グローバルにインストールされたです。その後、でもがグローバルにインストールされたnode-sassで失敗します。

私はマックOSXでノードを再インストールした
jurriendokter$ npm install 
npm WARN prefer global [email protected] should be installed with -g 

> [email protected] install /Users/jurriendokter/Development/holland-toolkit/node_modules/node-sass 
> node scripts/install.js 

module.js:487 
    throw err; 
    ^

Error: Cannot find module 'extend' 
    at Function.Module._resolveFilename (module.js:485:15) 
    at Function.Module._load (module.js:437:25) 
    at Module.require (module.js:513:17) 
    at require (internal/module.js:11:18) 
    at Object.<anonymous> (/Users/jurriendokter/Development/holland-toolkit/node_modules/node-sass/node_modules/request/index.js:17:29) 
    at Module._compile (module.js:569:30) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:503:32) 
    at tryModuleLoad (module.js:466:12) 
    at Function.Module._load (module.js:458:3) 
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected]://registry.npmjs.org/node-sass/-/node-sass-4.5.2.tgz (node_modules/node-sass): 
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] install: `node scripts/install.js` 
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1 

added 291 packages in 7.829s 

は、npm doctor、すべてをチェックし、私は全損でね。

どうすればこの問題を解決できますか?

+0

古いNPMバージョン(3または4)を使用してパッケージをインストールした後、新しいバージョン(5)を使用してパッケージをインストールすると、後者が混乱する可能性があります。これは、私にとってはローカルパッケージとグローバルパッケージの両方で起こります。通常、新しいパッケージ( 'npm i --force ...')を強制的にインストールすることで修正されました。私は 'node-gyp'警告が' node-sass'の依存関係として宣言されていることと関係していると思いますので、 'npm i node-sass'はローカルバージョンをインストールします。 'node-gyp'は' package.json'で 'preferGlobal'が設定されているからです)。 – robertklep

+0

それは私の状況では非常にうまくいっているかもしれません。ファイルシステムから 'package-lock.json'を削除すると、すべてのインストールを新しいもの(または強制的なもの)として扱われるので、助けにもなります。 別のバージョンをインストールしても '--save'を使わずに' package-lock.json'を更新した場合、 'package-lock.json'のバージョンを'package.json'で設定されたバージョン –

答えて

0

私はこの問題を次の手順で解決することができました。

  • npm cache clear --force
  • rm -rf node_modules
  • rm package-lock.json
  • npm install
  • npm update

これは警告解決しないことに注意:npm WARN prefer global [email protected] should be installed with -gをしかし、それは私が再び私のスクリプトをインストールして実行することができます。

関連する問題