2017-06-29 140 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也全球安裝失敗。

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 

我重新安裝節點在Mac OSX上,檢查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但它可以讓我再次安裝並運行我的腳本。