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
和一切,但我在全盤損失。
我該如何解決這個問題?
我發現如果您以前使用較舊的NPM版本(3或4)安裝軟件包,並隨後使用較新的版本(5)安裝軟件包,則後者可能會感到困惑。這發生在我和本地以及全球的軟件包上。通常通過強制安裝新軟件包('npm i --force ...')進行修復。我認爲'node-gyp'警告與它被聲明爲'node-sass'的依賴關係有關,因此'npm i node-sass'會(也)安裝它的本地版本,這可能會觸發警告因爲'node-gyp'在'package.json'中設置了'preferGlobal')。 – robertklep
這種情況很可能是我的情況。從文件系統中刪除'package-lock.json'也會將每個安裝視爲一個新安裝(或強制安裝),這樣也會有所幫助。 我發現如果你安裝了一個不同的版本,但不使用'--save'並因此更新'package-lock.json',它會從'package-lock.json'安裝版本而不是在'package.json'中設置的版本 –