我正在尝试全局安装刚刚发布的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,我已经对包中的所有内容进行了三次检查。我做了一些搜索,并看到了几个similer案例,其中没有一个已经解决。这是我试过的。
sudo npm install -g npm
)sudo npm cache clear
)npm cache clear
)我注意到错误与我链接到路径的文件有关,特别是当npm尝试执行chmod时。这应该不是问题,我的lib/cli.js
具有正常权限,并且npm在此安装期间具有超级用户权限。
在深入研究npm文档后,我发现了一个阻止npm创建bin链接(--no-bin-links
)的选项,当我尝试使用它时,它运行正常。
那是什么交易?这有些weird fringe case bug还没有解决方案吗?
修改:作为参考,here是我上传的模块
答案 0 :(得分:111)
好的,看起来NPM正在使用您的.gitignore
作为.npmignore
文件的基础,因此忽略了/lib
。如果将空白.npmignore
文件添加到应用程序的根目录中,则一切都应该有效。
[edit] - 有关此行为的更多信息,请访问:https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
答案 1 :(得分:97)
我遇到了类似的问题,
npm cache clean
解决了它。
答案 2 :(得分:9)
当我试图运行npm install -g bower
时,我在Mac上以某种方式出现了这个问题。由于无法找到优雅-fs之类的东西,它给了我一些错误。我不知道我最初是如何安装npm的,但看起来它可能是使用自制软件的节点。我第一次跑
brew uninstall node
这从我的路径中删除了node
和npm
。从那里我刚重新安装它
brew install node
完成后我的路径上有node
和npm
,我可以运行
rm -rf ~/.npm
npm install -g bower
然后成功安装了凉亭。
更新brew公式并升级安装程序对我来说似乎不起作用,我不知道为什么。删除.npm
文件夹对其他人来说是有用的,我试过没有成功。我这次是为了以防万一。另请注意,以下这两个问题都没有为我解决问题,尽管它对其他问题有所帮助:
npm cache clean
sudo npm cache clean
答案 3 :(得分:9)
我在npm install上收到此错误并添加.npmignore没有解决它。
错误:ENOENT,stat'C:\ Users \ My-UserName \ AppData \ Roaming \ npm'
我试着去提到的文件夹但它不存在。 在漫游文件夹中创建 npm 文件夹时,错误已得到修复。
这是在Windows 8.1
答案 4 :(得分:4)
我遇到了同样的问题,刚刚发现这里没有提到的处理。虽然我为社区做出了贡献:
npm install -g myapp
未复制bin
目录。我发现这是因为我没有将其包含在files
package.json
中
"files": [
"lib",
"bin" // this was missing
]
答案 5 :(得分:3)
我在本地安装npm install
上收到类似的错误:
npm ERR! enoent ENOENT: no such file or directory, stat '[path/to/local/installation]/node_modules/grunt-contrib-jst'
我不确定导致错误的原因,但我最近在本地安装了几个新的节点模块,使用自制程序升级了节点,然后运行&nbsp; npm update -g&#39;。
我能够解决问题的唯一方法是完全删除本地node_modules目录并再次运行npm install
:
cd [path/to/local/installation]
npm rm -rdf node_modules
npm install
答案 6 :(得分:3)
在尝试npm install
一堆依赖项时,我收到了类似的错误消息。事实证明其中一些无法在Debian / Ubuntu上安装,因为他们希望/usr/bin/node
是节点可执行文件。要修复,你需要做
sudo ln -s nodejs /usr/bin/node
或更好,
sudo apt-get install nodejs-legacy
答案 7 :(得分:2)
我认为已发布的npm包中缺少已编译的咖啡脚本。尝试编写prepublish命令。
答案 8 :(得分:2)
我有一个类似的问题: 呃! enoent ENOENT:没有这样的文件或目录,chmod&#39; node_modules / npm / node_modules / request / node_modules / http-signature / node_modules / sshpk / bin / sshpk-conv 我尝试了以上所有解决方案但没有运气。 我使用的是流浪盒,项目位于共享文件夹中。当我将项目移动到另一个不共享的文件夹(woth host)时,问题似乎只存在,瞧!问题解决了。 以防其他人使用流浪汉
答案 9 :(得分:2)
我在尝试安装grunt插件时遇到此错误。我发现我有一个过时的npm版本,并且在将npm更新到最新版本
后错误消失了npm install -g npm
答案 10 :(得分:2)
在我的情况下(多个代码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
我全局安装了yeoman
的一些生成器,如下所示:
$ sudo npm install -g generator-laravel
问题性:
以上操作导致某些依赖项安装在~/.npm/
目录中,拥有root:root
所有权(因为sudo ...
)。显然,在提取依赖关系并将它们写入本地用户子目录~/.npm/
时,npm不会以本地用户身份运行(或者之后更改依赖关系子目录所有权)。
只要npm对基本的unix文件系统安全问题如此粗心,问题就会再次发生。
<强>解决方案强>:
不断检查~/.npm/
是否包含除本地用户帐户以外的所有权(和/或权限)的子目录,尤其是在使用sodo
(root)安装或更新某些内容时。如果是,请以递归方式将~/.npm/
内的所有权更改为本地用户。
请npm, bower, grunt, ...
社区按照我上面的描述解决此问题。
答案 11 :(得分:1)
小心package.json中键“目录”和“文件”的无效值
如果您从一个新的应用程序开始,并且想要完全空白,则必须 从一个完整的空文件夹开始,或者在其中包含有效的package.json文件。
如果您不想首先创建package.json文件,只需键入:npm i some_package
名称为“ some_package”的软件包应正确安装在新的子文件夹“ node_modules”中。
如果首先创建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"
}
请注意,缺少以下键:“ 目录”,“ 存储库”和“ 文件”。如果您对“ 目录”和/或“ 文件”使用了错误的值,则似乎无法安装该软件包。遗漏了这些密钥,为我解决了这个问题。
也请注意键“ main ”。存在此值,但它确实包含无效值。尚无文件“ index.js”。您可以安全地删除它。
现在输入:npm i some_package
并将名称为“ some_package”的软件包正确安装在新的子文件夹“ node_modules”中。
答案 12 :(得分:1)
升级到npm 6.1.0
后,我遇到了类似的行为。它似乎可以工作一次,但是随后在尝试安装文件系统上由path指定的软件包时进入了此错误状态:
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
以下内容未能解决问题:
rm -rf node_modules
npm cache clean
(给了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
答案 13 :(得分:1)
在webpack的Docker容器中npm出现类似错误。该问题是由docker run的--user命令行参数引起的,因为其中的给定用户和组以某种方式弄乱了本地卷上的权限。希望这对某人有帮助:)
答案 14 :(得分:1)
尝试了几乎所有内容,然后终于做到了:
只需删除node_modules,然后再次运行'npm install'
答案 15 :(得分:1)
如果你的node.js也以某种方式损坏,你可能会收到此错误。我通过卸载/重新启动/安装node.js完全修复了这个错误,它修复了这个错误,以及引发的其他三个神秘错误。
答案 16 :(得分:1)
删除 package-lock.json 文件,然后运行 npm install
答案 17 :(得分:1)
那是因为没有package.json,只有package-lock.json
试试:npm init --yes
答案 18 :(得分:1)
答案 19 :(得分:1)
我尝试了我在网上找到的所有内容(npm cache clear
和rm -rf ~/.npm
),但似乎没有任何效果。解决这个问题的原因是将node(和npm)更新到最新版本。试试吧。
答案 20 :(得分:1)
在Windows中我遇到了类似的错误。
搜索粘贴应用数据并搜索字符串npm
。
我在'npm'
和'npm.cmd'
中用atlasboard\lib\package-dependency-manager.js
替换了字符串atlasboard\lib\cli\commands.js
(包括引号)。这解决了问题。
答案 21 :(得分:1)
对于包含不存在脚本的程序包,在全局安装(npm install -g mymodule
)期间出现相同的错误。
在package.json中:
...
"bin": {
"module": "./bin/module"
},
...
但是./bin/module
不存在,因为它被命名为modulejs
。
答案 22 :(得分:0)
我得到了简单的解决方案,只需清除 npm cache
。
sudo npm cache clear --force
然后删除 node_modules
和 package-lock.json
sudo rm -rf node_modules
sudo rm -rf package-lock.json
现在使用 npm 安装依赖模块并启动服务器
npm install && npm start
答案 23 :(得分:0)
安装离子时我得到以下错误
115648错误enoent ENOENT:没有这样的文件或目录,重命名 &#39; C:\ Users \用户名\应用程序数据\漫游\ NPM \ node_modules.staging \ ANSI-b11f0c4b&#39; - &GT; &#39; C:\ Users \用户名\应用程序数据\漫游\ NPM \ node_modules \离子\ node_modules \科尔多瓦-LIB \ node_modules \ ANSI&#39;
该路径上没有名为ansi
的文件夹。我在那里创建并正确安装。
答案 24 :(得分:0)
node_modules 目录可以在另一个应用程序中打开,例如“neatbeans”,并且禁止创建/重命名文件
可笑——在 Windows 10 机器上——这是我唯一的问题
答案 25 :(得分:0)
关闭 Android Studio 为我解决了这个错误。
答案 26 :(得分:0)
我在 ubuntu 上遇到了同样的问题,通过关闭终端并打开一个新终端解决了这个问题。
答案 27 :(得分:0)
首先要做
npm rm -rdf node_modules
然后做
npm install
安装后,您要添加的任何文件
答案 28 :(得分:0)
我遇到了类似的问题,原因不同:yo node
生成器已将"files": ["lib/"]
添加到package.json
,因为cli.js
位于lib/
之外}目录,它在发布到npm时被跳过。
(https://github.com/yeoman/generator-node/issues/63的Yeoman问题应尽快解决。)
答案 29 :(得分:0)
我收到错误“错误:ENOENT,stat'C:\ Users \ userName \ AppData \ Roaming \ npm'。但是没有这样的目录。创建目录并且npm安装开始工作
答案 30 :(得分:0)
我最近在Windows 7 x64计算机上升级到节点4.2.1。运行时
npm install -g bower
我遇到了类似的错误:
npm ERR! enoent ENOENT:没有这样的文件或目录,打开'C:\ Users \ THE_USERNAME \ AppData \ Local \ Temp \ npm-THE_HASH'
认为它与AppData路径有关,我玩了
npm config edit
和
npm config edit --global
更改前缀,缓存和tmp字段,但在新路径中收到相同的错误:
npm ERR! 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或其他软件包的版本。在我的情况下似乎是问题
答案 31 :(得分:0)
以上都不适合我。但yarn install
有效,然后npm i
开始工作。不确定什么纱线固定,但快速简便的解决方案!
答案 32 :(得分:0)
如果你试图&#34; make install&#34;在您的项目目录中出现此错误,您可以尝试:
rm -rf ./node_modules
npm cache clear
npm remove sails
然后您可以尝试安装&#34;
如果你有&#34; npm ERR! enoent ENOENT:没有这样的文件或目录,chmod&#39; ... / djam-backend / node_modules / js-beautify / js / bin / css-beautify.js&#39;&#34;然后你可以尝试安装一些以前版本的js-beautify,更多评论:https://github.com/beautify-web/js-beautify/issues/1247
"dependencies": {
...
"js-beautify": "1.6.14"
...
}
并运行&#34; make install&#34;。如果您没有其他依赖项需要更高版本(1.7.0),在这种情况下,您必须在packages.json中降级此软件包,这似乎有用。
或
答案 33 :(得分:-1)
我遇到了类似的问题,清除缓存、删除 node_modules 和重新安装都不起作用,因此将节点版本升级到最新版本对我有用。
sudo npm install n -g
然后
sudo n stable
答案 34 :(得分:-2)
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.``
我遇到了类似的错误,但是我尝试运行过多次create-react-app命令,最后它被创建了,这是我的Internet连接问题。 检查您的互联网连接
答案 35 :(得分:-14)
请试试这个
SET HTTP_PROXY=<proxy_name>
然后尝试该命令。它将起作用