项目场景:

之前安装less-loader报错,一直以为是版本原因,之后试了好多低版本,发现还是安装失败,最后发现是由于npm权限原因。


问题描述

降低了less-loader版本后依然报错,如下:

PS C:\Users\L\Desktop\Vue\vue_test> npm install less-loader@5.0.0 -D
npm ERR! code EPERM
npm ERR! syscall open
npm ERR! path C:\Program Files\nodejs\node_cache\_cacache\tmp\cdf62787
npm ERR! errno EPERM
npm ERR! FetchError: Invalid response body while trying to fetch https://registry.npmjs.org/less-loader: EPERM: operation not pe
rmitted, open 'C:\Program Files\nodejs\node_cache\_cacache\tmp\cdf62787'
npm ERR!     at C:\Program Files\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\body.js:166:15
npm ERR!     at async Arborist.[nodeFromEdge] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arbori
st\build-ideal-tree.js:1081:19)
npm ERR!     at async Arborist.[buildDepStep] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arbori
st\build-ideal-tree.js:950:11)
npm ERR!     at async Arborist.buildIdealTree (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arbori
st\build-ideal-tree.js:216:7)
npm ERR!     at async Promise.all (index 1)
npm ERR!     at async Arborist.reify (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.
js:153:5)
npm ERR!     at async Install.exec (C:\Program Files\nodejs\node_modules\npm\lib\commands\install.js:159:5)
npm ERR!     at async module.exports (C:\Program Files\nodejs\node_modules\npm\lib\cli.js:66:5)
npm ERR!  FetchError: Invalid response body while trying to fetch https://registry.npmjs.org/less-loader: EPERM: operation not p
ermitted, open 'C:\Program Files\nodejs\node_cache\_cacache\tmp\cdf62787'
npm ERR!     at C:\Program Files\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\body.js:166:15
npm ERR!     at async Arborist.[nodeFromEdge] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arbori
st\build-ideal-tree.js:1081:19)
npm ERR!     at async Arborist.[buildDepStep] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arbori
st\build-ideal-tree.js:950:11)
npm ERR!     at async Arborist.buildIdealTree (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arbori
st\build-ideal-tree.js:216:7)
npm ERR!     at async Promise.all (index 1)
npm ERR!     at async Arborist.reify (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.
js:153:5)
npm ERR!     at async Install.exec (C:\Program Files\nodejs\node_modules\npm\lib\commands\install.js:159:5)
npm ERR!     at async module.exports (C:\Program Files\nodejs\node_modules\npm\lib\cli.js:66:5) {npm ERR!   code: 'EPERM',
npm ERR!   errno: 'EPERM',
npm ERR!   path: 'C:\\Program Files\\nodejs\\node_cache\\_cacache\\tmp\\cdf62787',
npm ERR!   type: 'system',
npm ERR!   requiredBy: '.'
npm ERR! }
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:

原因分析:

创建权限:

在使用vue或者npm的时候,经常会出现创建失败的报错,比如下面这样的:

最关键的报错信息If you believe this might be a permissions issue, please double-check the 或者包含permissions的错误,大部分都是因为创建权限的问题导致。


解决方案:

设置相应的权限:

vue是基于npm运行的,所以我们给npm设置权限就好;

打开npm安装路径所在文件夹的属性,我的安装路径是C:\Program Files\nodejs,在nodejs文件夹右键点击属性,打开“安全”选项, 点击编辑,就像下面这样:

勾选完全控制并应用,会执行一会儿,等待就可以了:

 

 完成上面的步骤后,先把之前安装的进行卸载:

npm uninstall less-loader

npm uninstall less

安装less-loader,我担心版本太高,就安装了7版本的(如版本太高报错的话,可以参考其他大佬的文档):

npm i less-loader@7

安装成功后需要重启项目,执行:

npm install

npm run serve

项目启动成功。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐