Ano*_*ike 82 windows file-permissions cmd node.js npm
无论我在哪个目录,以及在cmd.exe中的"npm"后输入的内容,我都会遇到此错误.这是npm-debug.log:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js' ]
2 info using npm@2.14.12
3 info using node@v4.2.6
4 verbose stack Error: EISDIR: illegal operation on a directory, read
4 verbose stack at Error (native)
5 verbose cwd C:\Users\me
6 error Windows_NT 6.1.7601
7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js"
8 error node v4.2.6
9 error npm v2.14.12
10 error code EISDIR
11 error errno -4068
12 error syscall read
13 error eisdir EISDIR: illegal operation on a directory, read
13 error eisdir This is most likely not a problem with npm itself
13 error eisdir and is related to npm not being able to find a package.json in
13 error eisdir a package you are trying to install.
14 verbose exit [ -4068, true ]
Run Code Online (Sandbox Code Playgroud)
我已多次尝试和卸载/重新安装nodejs,我甚至删除了C:\ Users\me\AppData\Roaming中的npm和npm-cache文件夹.我不确定导致这种情况出了什么问题.一秒钟它工作正常,现在我无法摆脱这个错误.日志中的解释没有意义,因为它在任何目录中都会出现此错误.我应该注意,以管理员身份运行命令提示符不会出现此错误.我在周五晚上把头发拉出来试图解决这个问题,任何帮助都将不胜感激!
Mau*_*eal 150
EISDIR代表" 错误,是目录 ".这意味着NPM正在尝试对文件执行某些操作,但它是一个目录.在您的情况下,NPM正在尝试" 读取 "作为目录的文件(行:4).由于无法执行操作,因此会引发错误.
这里要确保三件事.
use*_*043 51
我在更改某些npm设置时遇到了同样的问题.我用一个npm config set
命令做错了,这增加了一行引用一个不存在的目录C:\Users\{User}\.npmrc
.手动删除该行后.npmrc
,问题就消失了.
Oma*_*imi 10
对我来说,这是因为我走错了路;它应该是文件的路径,但我错误地使用了目录的路径:
改变了这一点:
path.resolve(__dirname, '../');
Run Code Online (Sandbox Code Playgroud)
进入这个:
path.resolve(__dirname, '../.env')
Run Code Online (Sandbox Code Playgroud)
小智 7
在我的情况下,我收到“ EISDIR:对目录的非法操作,请读取”,因为在我的.angular-cli.json文件中,我没有在“脚本”中提供完整路径:
例如我有
"scripts": [
"../node_modules/hammerjs",
"../node_modules/moment"
],
Run Code Online (Sandbox Code Playgroud)
实际上应该是
"scripts": [
"../node_modules/hammerjs/hammer.min.js",
"../node_modules/moment/min/moment.min.js"
],
Run Code Online (Sandbox Code Playgroud)
我在Mac OS X(用自制安装)相同的问题,而.npmrc不是唯一的地方节点存储配置变量.在/ usr/local/etc中有一个glocal npmrc配置文件,您必须使用此命令进行编辑:
sudo nano npmrc
Run Code Online (Sandbox Code Playgroud)
删除该ca=
行,或者任何破坏安装的配置设置,保存该文件,然后再次尝试npm,您应该看到它正常工作.
这些奇怪的错误最近发生在我的OSX计算机上。
我可以通过运行以下命令来帮助自己快速又肮脏:
sudo chmod -R 777 /usr/local/lib/node_modules/
似乎有些东西弄乱了所有全局节点模块的访问权限。
所以大多数答案都说它与 .npmrc 文件有关。
就我而言,我正在使用以下消息部署无服务器应用程序serverless deploy
EISDIR: illegal operation on a directory, unlink '/home/malvadao/workspace/project/.build/node_modules'
被扔了。
删除.build文件夹对我来说是这样。就是Typescript编译后生成的文件夹。由于启动命令后会重新创建文件夹serverless deploy
,因此足以解决问题并继续流程。
换句话说,手动删除该文件夹可能足以让您继续前进,而无需触摸 .npmrc