Npm 安装错误错误: ENOENT,chmod

我试图在全球范围内安装我刚刚发布的 npm 模块。每次尝试从 npm 或文件夹安装时,都会出现这个错误。

npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>


npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/giodamlio/npm-debug.log
npm ERR! not ok code 0

我正在使用 sudo,我已经三次检查包中的一切都应该工作。我四处搜寻了一下,发现了几个类似的案件,但都没有得到解决。这是我试过的方法。

  • 升级 npm (sudo npm install -g npm)
  • 清除全局 npm 缓存(sudo npm cache clear)
  • 清除用户 npm 缓存(npm cache clear)

我注意到这个错误与我链接到路径的文件有关,特别是当 npm 尝试执行 chmod 时。这应该不是问题,我的 lib/cli.js有正常的权限,npm 在安装期间有超级用户的权限。

在深入研究了 npm 文档之后,我发现了一个可以阻止 npm 建立 bin 链接(--no-bin-links)的选项,当我尝试使用它进行安装时,它工作得很好。

到底怎么回事? 这是什么 奇怪的边缘案件窃听器还没有解决方案吗?

编辑: 作为参考,给你是我上传的模块

497512 次浏览

我认为已发布的 npm 包中缺少已编译的咖啡脚本。

好的,看起来 NPM 使用您的 .gitignore作为 .npmignore文件的基础,因此忽略了 /lib。如果您将一个空白的 .npmignore文件添加到应用程序的根目录中,那么一切都会正常工作。

一种更好、更明确的方法是使用 allow-list 而不是 disallow-list,并使用 package.json 中的“ files”字段来指定包中的文件。

[ edit ]-更多关于这种行为的信息请点击: https://docs.npmjs.com/cli/v7/using-npm/developers#keeping-files-out-of-your-package

请试试这个

SET HTTP_PROXY=<proxy_name>

那就试试这个命令,会有用的

当我试图运行 npm install -g bower的时候,这个问题在 Mac 上出现了。它给我带来了很多错误,因为我不能找到像优美 f 这样的东西。我不确定最初是如何安装 npm 的,但是看起来可能是使用自制程序的节点崩溃了。我第一次跑步

brew uninstall node

这删除了 nodenpm从我的路径。从那里我只是重新安装它

brew install node

当它完成时,我有 nodenpm在我的路径,我能够运行

rm -rf ~/.npm
npm install -g bower

然后成功地安装了保温箱。

更新酿造公式和升级安装似乎不适合我,我不知道为什么。删除 .npm文件夹对其他人来说是有效的,我曾经尝试过,但是没有成功。我这次是为了以防万一。还要注意的是,以下两个方法都没有解决我的问题,尽管对其他人来说解决了:

npm cache clean
sudo npm cache clean

我也遇到过类似的问题,

npm cache clean

解决了。

我试了所有我在网上找到的东西(npm cache clearrm -rf ~/.npm) ,但似乎没有工作。解决这个问题的方法是将节点(和 npm)更新到最新版本。试试这个。

在我的案例中(多个代码 ENOENT errno 34)问题是与 ~/.npm/目录访问。在它里面有一些子目录具有 root:root权限,当我作为普通用户(没有 sudo)运行命令时,这些子目录会引起问题。因此,我将 ~/.npm/ dir 中所有子目录和文件的所有权更改为本地用户和组。这在我的 Ubuntu (在 Mac 上也应该可以)上成功了。

$ sudo chown yourusername.yourgroupname ~/.npm/ -R

你应该知道你的用户名,对吧?如果没有,那么运行 $ whoami并用它替换你的组名,像这样:

$ sudo chown johnb.johnb ~/.npm/ -R

编辑:

测试用例 :

从我的本地帐户 /home/johnb我 npm-全球安装一些发电机的 yeoman,像这样:

$ sudo npm install -g generator-laravel

问题本质 :

上述操作导致一些依赖项安装在 ~/.npm/目录中,具有 root:root所有权(因为 sudo ...)。显然,当提取依赖项并将它们写入本地用户 subdir ~/.npm/时,npm 不会以本地用户的身份运行(或者事后更改依赖项 subdir 所有权)。 只要 npm 对基本的 unix 文件系统安全问题如此粗心,问题就会再次出现。

解决方案 :

  1. 不断检查 ~/.npm/是否包含除本地用户帐户以外的子目录(和/或权限) ,特别是在使用 sodo(root)安装或更新某些内容时。如果是这样,递归地将 ~/.npm/内部的所有权更改为本地用户。

  2. 请询问 npm, bower, grunt, ...社区,他们正如我上面所描述的那样处理这个问题。

在 Windows 中,我也有类似的错误。 搜索粘贴 AppData 并搜索字符串 npm

atlasboard\lib\package-dependency-manager.jsatlasboard\lib\cli\commands.js中,我用 'npm.cmd'替换了字符串 'npm'(包括引号)。

对于不存在脚本的软件包,在全局安装(npm install -g mymodule)期间出现相同的错误。

在 package.json:

    ...
"bin": {
"module": "./bin/module"
},
...

但是 ./bin/module并不存在,因为它被命名为 modulejs

我在另一个原因上遇到了类似的问题: yo node生成器将 "files": ["lib/"]添加到了我的 package.json中,而且因为我的 cli.jslib/目录之外,所以在发布到 npm 时跳过了它。

(https://github.com/yeoman/generator-node/issues/63的文书问题应该很快就能解决。)

我在 npm 安装时遇到了这个错误,但是添加.npmore 并没有解决这个问题。

错误: ENOENT,stat‘ C: Users My-UserName AppData Roaming npm’

我试图去上面提到的文件夹,但它并不存在。 在 漫游文件夹中的 被创造出来 Npm文件夹中修复了错误。

这是在 Windows 8.1上的

我收到一个错误“ Error: ENOENT,stat‘ C: Users userName AppData Roaming npm”。但是没有这样的目录。创建目录后,npm 安装就开始工作了

我得到了类似的错误消息时,尝试 npm install的一堆依赖项。事实证明,其中一些未能安装在 Debian/Ubuntu 上,因为他们期望 /usr/bin/node是节点可执行文件。你需要去弥补

sudo ln -s nodejs /usr/bin/node

或者更好,

sudo apt-get install nodejs-legacy

更多信息: https://stackoverflow.com/a/21171188/7581

我得到这个错误时,试图安装一个咕噜插件。我发现我有一个过时的 npm 版本,错误消失后更新 npm 到最新的版本

npm install -g npm

我也有同样的问题,只是找到了一个这里没有提到的处理方法。尽管我会为社区做出贡献:

npm install -g myapp没有复制 bin目录。我发现这是因为我没有把它包括在我的 package.jsonfiles

"files": [
"lib",
"bin" // this was missing
]

我最近在一台 Windows7x64机器上升级到节点4.2.1

npm install -g bower

我得到了一个类似的错误:

ENOENT ENOENT: 没有这样的文件或目录,打开‘ C: Users THE _ USERNAME AppData Local Temp npm-THE _ HASH’

我认为这与 AppData 的发展道路有关,于是我就玩了一把

npm config edit

还有

npm config edit --global

更改前缀、缓存和 tmp 字段,但在新路径中收到相同的错误:

ENOENT ENOENT: 没有这样的文件或目录,打开‘ C: Users THE _ USERNAME npm-temp npm-THE _ HASH’

所有命令都以管理员身份运行,因此我拥有完全权限。

然后我认为现有文件存在一些问题,所以我跑:

npm cache clean

但也出现了同样的错误。但是,还有一些临时文件。使用 cygwin 手动删除所有临时数据最终为我解决了这个问题:

rm -rf bower bower.cmd node_modules etc

如果您只有 Windows cmd,您可以使用

rmdir /S THE_TEMP_DIR

删除所有子目录(尽管如果您有深度嵌套的节点依赖项,这是出了名的问题)

因此,可能在升级 npm 和使用 Bower 或其他包的版本方面存在一些问题。对我来说,这似乎就是问题所在

我在本地安装的 npm install上也遇到了类似的错误:

npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'

我不确定是什么导致了这个错误,但是我最近在本地安装了几个新的节点模块,用自制程序升级了节点,并运行了‘ npm update-g’。

我能够解决这个问题的唯一方法是完全删除本地 node _ module 目录,然后再次运行 npm install:

cd [path/to/local/installation]
npm rm -rdf node_modules
npm install

在安装离子时,我得到了下面的错误

错误编号 ENOENT: 没有这样的文件或目录,重命名 ‘ C: Users UserName AppData Roaming npm node _ module. stage ansi-b11f0c4b’ - > ‘ C: Users UserName AppData Roaming npm node _ module ionic node _ module cordova-lib node _ module ansi’

在那个路径上没有名为 ansi的文件夹。我在那里创建了它,并正确地安装了它。

  1. 安装节点的最新版本
  2. 运行: npm 缓存干净
  3. 运行: npm install cordova-g

我有一个类似的问题: ERR! ENOENT ENOENT: 没有这样的文件或目录,chmod‘ node _ module/npm/node _ module/request/node _ module/http-sign/node _ module/sshpk/bin/sshpk-conv 我尝试了以上所有的解决方案,但没有运气。 我用的是流浪汉盒子,项目在一个共享文件夹里。问题似乎只有在那里,当我把项目到另一个不共享的文件夹(与主机) ,瞧!问题解决了。 以防其他人也是流浪汉

如果您尝试在您的项目目录中使用这个错误“ make install”,您可以尝试:

rm -rf ./node_modules
npm cache clear
npm remove sails

然后你可以试试“ make install”

如果您有“ npm ERR!ENOENT ENOENT: 没有这样的文件或目录,chmod’.../djam-backend/node _ module/js-beutify/js/bin/css-beutify。然后您可以尝试安装一些以前版本的 js- 美化,更多注释: https://github.com/beautify-web/js-beautify/issues/1247

"dependencies": {
...
"js-beautify": "1.6.14"
...
}

运行“ make install”。如果您没有其他需要更高版本(1.7.0)的依赖项,那么在这种情况下,您必须在 packages.json 中降低这个包的级别。

或者

以上这些对我来说都不管用。但是 yarn install起作用了,然后 npm i开始起作用。不知道什么纱线固定,但快速简便的解决办法!

如果 node.js 也以某种方式损坏,您也可以得到这个错误。我通过卸载/重启/install node.js 完全修复了这个错误,它修复了这个错误,以及抛出的其他三个神秘错误。

升级到 npm 6.1.0后,我遇到了类似的行为。它似乎曾经工作过一次,但是当我试图在文件系统上安装一个由 path 指定的包时,出现了这个错误:

npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename

以下事项 没有解决问题:

  • rm -rf node_modules
  • (给予 npm ERR! As of npm@5, the npm cache self-heals... . use 'npm cache verify' instead.)
  • npm cache verify
  • rm -rf ~/.npm

怎么做 解决了问题:

  • rm package-lock.json

对于 package.json 中键“目录”和“文件”的无效值,要小心

如果您从一个新的应用程序开始,并且希望开始时完全是空白的,那么必须这样做 要么在一个完整的空文件夹中启动,要么在其中包含一个有效的 package.json 文件。

如果不想首先创建 package.json 文件,只需键入: npm i some_package

名为“ some _ Package”的软件包应该正确地安装在一个新的子文件夹“ node _ module”中。

如果首先创建 package.json 文件,输入: npm init 保持所有的默认值(只需单击 ENTER) ,您应该得到一个有效的文件。

它应该是这样的:

{
"name": "yourfoldername",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}

请注意,缺少以下键: “ 目录”、“ 储存库”和“ 文件”。看起来,如果对“ 目录”和/或“ 文件”使用了不正确的值,则无法安装该软件包。留下这些钥匙,帮我解决了问题。

还要注意键“ 总台”。这个是存在的,但它包含一个无效的值。目前还不存在“ index.js”文件。你可以安全地移除它。

现在输入: npm i some_package 并且名为“ some _ package”的包应该正确地安装在一个新的子文件夹“ node _ module”中。

Creating a new React app in C:\Users\CM\Downloads\react\github-profile.
Installing packages. This might take a couple of minutes.
Installing react, react-dom, and react-scripts...


npm ERR! path C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-


v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335b1
0893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806


npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall lstat
npm ERR! Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6
5545008a3cad93d00f806'
npm ERR! { [Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1f
a335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec6554500
8a3cad93d00f806']


npm ERR! cause:
npm ERR! { Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1
fa335b10893d67f7339e4
af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93d00f806'
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content-




npm ERR! stack:
npm ERR! 'Error: EPERM: operation not permitted, lstat
'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996
b1fa335b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015
eec65545008a3cad93d00f806'',
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'lstat',
npm ERR! path:
npm ERR! 'C:\Users\CM\AppData\Roaming\npm-cache\_cacache\content-
v2\sha512\36\c6\c3e97514319bc1c6d40026e58325e782e1016c996b1fa335
b10893d67f7339e4af62bb688c0da2aaca839d4c9d51e2eb015eec65545008a3cad93
d00f806',
npm ERR! parent: 'postcss-image-set-function' }
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 thenpm ERR! permissions of the file and its containing directories, or
try  running


npm ERR! the command again as root/Administrator (though this is not
recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\CM\AppData\Roaming\npm-cache_logs\2019-03-22T10_
27_19_722Z-debug.log




Aborting installation.
npm install --save --save-exact --loglevel error react react-dom react-
scripts   has failed.


Deleting generated file... node_modules
Deleting generated file... package.json
Deleting GitHub-profile/ from C:\Users\CM\Downloads\reactDone.``

我面临着类似的错误,但我尝试运行创建-反应应用程序命令多次,最后它被创建,这是我的互联网连接的问题。 检查你的网络连接

第一件事

 npm rm -rdf node_modules

那就做吧

npm install

在此之后,安装您想要添加的任何文件

在 webpack 的 docker 容器中的 npm 也有类似的错误。这个问题是由 docker run 的—— user 命令行参数引起的,因为给定的用户和组以某种方式搞乱了本地卷上的权限。希望这对某些人有所帮助:)

尝试了几乎所有的方法,最后是这样的:

只需删除 node _ module,然后再次运行 'npm install'

我在 ubuntu 上也遇到了同样的问题,所以我关闭了终端并且打开了一个新的终端来解决这个问题。

关闭 Android Studio 为我解决了这个错误。

删除 package-lock. json 文件,然后运行 npm install

我遇到过类似的问题,清除缓存、删除 node _ module 和重新安装都不起作用,所以将节点版本升级到最新版本对我来说很有效。

sudo npm install n -g

那么

sudo n stable

这是因为没有 package.json,只有 package-lock. json

试试: npm init ——是的

Node _ module 目录可以在另一个应用程序(如“ neatbeans”)中打开,并且禁止创建/重命名文件

可笑的是,在 Windows 10机器上这是我唯一的问题

我有一个简单的解决方案,只要清除 npm cache

sudo npm cache clear --force

然后移除 node_modulespackage-lock.json

sudo rm -rf node_modules
sudo rm -rf package-lock.json

现在使用 npm 安装依赖模块并启动服务器

npm install && npm start

首先安装猫鼬依赖项

安装猫鼬

Npm 安装

解决这个问题仅仅是因为文件的修改被锁定了,或者你已经通过一个特定的保护程序锁定了分区的权限,证据就是在另一个文件或硬盘驱动器上的另一个地方创建项目

删除 node _ module、 package-lock. json 并运行 npm install

rm -rf node_modules
rm -rf package-lock.json
npm install

我在使用 React 17.0.2时也遇到了麻烦,因为现在默认安装的是 React 18。

处理这个节点/npm 错误的方法是:

  1. 卸载并安装后台 nodejs
  2. 不要删除包-lock. json
  3. 运行: npm install

它适合我: Windows 10,npm 8.6.0,节点 v16.14.2

有一个类似的问题,但我是在错误的目录请交叉检查的路径电子文件和运行 npm 启动

下面的命令对我很管用:

           npm cache clean --force
npm rm -rdf node_modules
rm -rf package-lock.json
npm install -g @sencha/ext-gen
npm install

要解决以下错误,请确保在终端的正确目录中运行 npm run start命令。

$ npm run start
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path E:\YOUR_PROJECT_FOLDER\example-frontend/package.json
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory, open 'E:\YOUR_PROJECT_FOLDER\example-frontend\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

我得到了相同的错误,直到我发现我在错误的目录中运行“ npm start”。之后,当我通过 cd <directory-name>导航到正确的目录时,它工作得很好。

enter image description here