我最近在我的计算机上运行了node.js(最新版本,9.8.0)(运行Windows 10),因为它开始出现故障。
问题是,现在npm不起作用。例如,在cmd中输入npm
后,我收到错误:
Error: EPERM: operation not permitted, mkdir 'C:\Program Files (x86)\Nodist'
TypeError: Cannot read property 'get' of undefined
at errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205:18)
at C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js:83:20
at cb (C:\Program Files\nodejs\node_modules\npm\lib\npm.js:224:22)
at C:\Program Files\nodejs\node_modules\npm\lib\npm.js:262:24
at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:81:7
at Array.forEach (<anonymous>)
at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:80:13
at f (C:\Program Files\nodejs\node_modules\npm\node_modules\once\once.js:25:25)
at afterExtras (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:178:20)
at C:\Program Files\nodejs\node_modules\npm\node_modules\mkdirp\index.js:35:29
at C:\Program Files\nodejs\node_modules\npm\node_modules\mkdirp\index.js:47:53
at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29
at FSReqWrap.oncomplete (fs.js:170:21)
C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205
if (npm.config.get('json')) {
^
TypeError: Cannot read property 'get' of undefined
at process.errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205:18)
at process.emit (events.js:180:13)
at process._fatalException (bootstrap_node.js:431:27)
Error: EPERM: operation not permitted, mkdir 'C:\Program Files (x86)\Nodist'
TypeError: Cannot read property 'get' of undefined
at errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205:18)
at C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js:83:20
at cb (C:\Program Files\nodejs\node_modules\npm\lib\npm.js:224:22)
at C:\Program Files\nodejs\node_modules\npm\lib\npm.js:262:24
at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:81:7
at Array.forEach (<anonymous>)
at C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:80:13
at f (C:\Program Files\nodejs\node_modules\npm\node_modules\once\once.js:25:25)
at afterExtras (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:178:20)
at Conf.<anonymous> (C:\Program Files\nodejs\node_modules\npm\lib\config\core.js:234:20)
at C:\Program Files\nodejs\node_modules\npm\lib\config\set-user.js:23:20
at C:\Program Files\nodejs\node_modules\npm\node_modules\mkdirp\index.js:35:29
at C:\Program Files\nodejs\node_modules\npm\node_modules\mkdirp\index.js:47:53
at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:284:29
at FSReqWrap.oncomplete (fs.js:170:21)
C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205
if (npm.config.get('json')) {
^
TypeError: Cannot read property 'get' of undefined
at process.errorHandler (C:\Program Files\nodejs\node_modules\npm\lib\utils\error-handler.js:205:18)
at process.emit (events.js:180:13)
at process._fatalException (bootstrap_node.js:431:27)
但是,node命令工作正常。为什么会这样?
编辑:我已经尝试恢复到推荐的Node.js版本(8.10.0),但我遇到了同样的问题。
答案 0 :(得分:12)
前一段时间我遇到过类似的问题。尝试导航到.npmrc
中名为C:\Users\%UserName%
的文件,然后将其删除。
答案 1 :(得分:1)
这可能与需要清理的NPM缓存有关,您可以使用以下方法进行清理:
npm cache clean
让我知道它是否有帮助....
答案 2 :(得分:1)
要在Windows中解决此问题,请创建一个到用户文件夹的目录连接,其中没有空格。您可以在管理Powershell中运行以下命令:
cmd /c mklink /J "C:\Users\myname" "C:\Users\My Name"
然后,您可以像使用真实用户目录一样使用此联结:
npm config set cache C:\Users\myname\AppData\Roaming\npm-cache
npm config set prefix C:\Users\myname\AppData\Roaming\npm
(以上操作应更新您的用户.npmrc文件)