无论我在哪个目录,以及在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 [email protected]
3 info using [email protected]
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 ]
我已多次尝试和卸载/重新安装nodejs,我甚至删除了C:\ Users \ me \ AppData \ Roaming中的npm和npm-cache文件夹。我不确定导致这种情况出了什么问题。一秒钟它工作正常,现在我无法摆脱这个错误。日志中的解释没有意义,因为它在任何目录中都会出现此错误。我应该注意,以管理员身份运行命令提示符不会出现此错误。我在周五晚上把头发拉出来试图解决这个问题,任何帮助都将不胜感激!
我在更改某些npm设置时遇到了同样的问题。我用一个npm config set
命令做错了,这增加了一行指向C:\Users\{User}\.npmrc
的一个不存在的目录。我从.npmrc
手动删除该行后,问题就消失了。
gulp我有这个问题。问题是gulp为我的源文件添加了一个依赖项,我认为npm试图打开它:
{
"name": "name",
"version": "2.0.0",
"description": "",
"main": "gulpfile.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"appname": "file://gulp",
"gulp-concat": "^2.6.1",
"gulp-electron": "^0.1.3",
"gulp-shell": "^0.5.2",
"gulp-uglify": "^2.0.0",
"gulp-util": "^3.0.7",
"node-7z": "^0.4.0"
}
}
确保package.json文件中没有奇怪的引用。
设置样板代码时遇到了类似的问题。它正在将我的bundle.js文件作为目录读取。如此处所述。 EISDIR意味着它的目录而不是文件。为了解决这个问题,我删除了文件并重新创建(最初是自动创建的)。如果找不到该文件(因为它隐藏了),只需使用终端查找并删除它即可。
在我尝试删除.git文件夹之前有同样的问题。有效。我猜这种类型的问题可能有不同的原因。
我遇到过同样的问题。我的目录中有一个链接文件夹导致了问题。我添加该文件夹忽略列表,然后它开始按预期正常工作。
我知道这不是特别询问永远的js ..但谷歌引导我在这里..对我来说它就像一个结束斜线一样简单。
我改变了:
forever start -a -l /dev/null/ /var/www/node/my_file.js
至:
forever start -a -l /dev/null /var/www/node/my_file.js
错误消失了
对我来说,修复是在目录名后添加斜杠
请务必检查您的npm版本以及是否存在问题。在这篇文章发表时我遇到了同样的问题,我发现我的npm版本(6.5)存在问题。我不得不卸载并重新安装npm版本6.4.1,然后一切都恢复正常。
我在子文件夹中的node_modules有一个破损的符号链接
在我的情况下,我忘了传递它所询问的文件之一的完整路径。传递文件的完整路径后工作:)
就我而言,我在使用以下命令在create-react-app
中安装MAC (Mojave OS)
时遇到了这个问题:
sudo npm install create-react-app -g
并得到这样的错误:
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/scheduler'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/webSocket'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/webSocket'
我已经阅读了npm.community,尝试在没有sudo
的情况下安装:
npm install create-react-app -g
它实际上解决了我的问题.. !!
EISDIR代表“错误,是目录”。这意味着NPM正在尝试对文件执行某些操作,但它是一个目录。在您的情况下,NPM正在尝试“读取”作为目录的文件(行:4)。由于无法执行操作,因此会引发错误。
这里要确保三件事。
就我而言,这些步骤解决了我的问题:
npm
进程(CTRL + C)
npm
在我将我的npm从版本6.4.1升级到版本6.5.0之后,今天遇到了同样的问题。我通过从node.js下载.pkg安装程序(推荐给大多数用户)并在之后运行它来修复此问题。
在我的情况下,我得到了“EISDIR:在目录上非法操作,读取”因为在我的.angular-cli.json文件中我没有提供“脚本:”的完整路径
比如我有
"scripts": [
"../node_modules/hammerjs",
"../node_modules/moment"
],
事实上它应该是
"scripts": [
"../node_modules/hammerjs/hammer.min.js",
"../node_modules/moment/min/moment.min.js"
],
我在Mac OS X(与自制软件一起安装)上遇到了同样的问题,并且.npmrc不是唯一存储配置变量的节点。在/ usr / local / etc中有一个glocal npmrc配置文件,您必须使用此命令进行编辑:
sudo nano npmrc
删除ca=
行,或者任何破坏安装的配置设置,保存该文件,再次尝试npm,你应该看到它正常工作。
最近在我的OSX机器上发生了这些奇怪的错误。
我可以通过运行来帮助自己快速而肮脏的方式:
sudo chmod -R 777 /usr/local/lib/node_modules/
似乎有些东西搞砸了所有全局节点模块的访问权限。
检查以确保从正确的目录运行npm install。
(例如,package.json文件可能是一个额外的目录。)
如果您的问题与React Native包装程序相关联。尝试使用react-native start --reset-cache
重置缓存。
做一个完整的卸载,包括删除路径等,并重新安装已解决了问题,但非常奇怪的问题。