发布于 3年前

bash: /usr/bin/npm: No such file or directory ,出现No space left on device错误

官网居然只提供这种方法,结果发现在其github主页上提供的方法是:curl -L https://npmjs.com/install.sh | sh成功.

仍然不能用:

npm -v

bash: /usr/bin/npm: No such file or directory

一通乱搜, 对着各种解决方法乱试, 也没真正解决,那只有自己思考一下了:

npm既然装上了,那么装到哪去了(找到了)

直接到安装目录执行(成功了)

那么就软链一下试试(成功了)

sudo find / -name "npm-cli.js"

/usr/lib/node_modules/npm/bin/npm-cli.js

/usr/lib/node_modules/npm/bin/npm-cli.js -v

2.1.17

sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm

npm -v

2.1.17

p.s. 虽然npm正常工作了,最后发现npm install一个包都下不下来, 执行了一句npm cache clean,貌似就OK了。



node升级后,项目中的node-sass报错的问题

之前可能因为电脑不知道哪抽风了,在npm build的时候进入就卡在入口的地方,启动express的时候也会,所以就重装了一下node

重装node

其实也不是重装,就是使用 where node 查看node的安装目录,然后下载新版本的node,覆盖安装就是了

原本node v8.x 更新后 node v10.x,但是express启动还是卡主了,不懂什么原因,但是悲剧的是,原来的vue详情启动的时候就报错了。。。

···

Module build failed: Error: Missing binding G:\myCode\YB\clientapps\AccountV4\node_modules_node-sass@4.9.0@node-sass\vendor\win32-x64-64\binding.node

Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 10.x

Found bindings for the following environments:

Windows 64-bit with Node.js 8.x

···

报错大概就这段比较看得出问题。。。

解决办法

网上找了一下,需要重装node-sass包

所以呢

npm rebuild node-sass

安装完重新启动就ok了, 所以没事还是别更新node,最好保持团队的环境一致~



centos上运行的nodejs 出现No space left on device错误

运行django出现错误信息:

[2016-02-16 14:33:24,476 pyinotify ERROR] add_watch: cannot watch /usr/local/lib/python2.7/dist-packages/django/contrib/sessions/backends/cache.py WD=-1, Errno=No space left on device (ENOSPC) ERROR:pyinotify:add_watch: cannot watch /usr/local/lib/python2.7/dist-packages/django/contrib/sessions/backends/cache.py WD=-1, Errno=No space left on device (ENOSPC)

查询网络第一判断是缺少Inode节点: linux中创建一个文件不仅仅需要存储空间,也需要Inode节点。Inode节点在磁盘建立的时候就分配好最大的个数(每2K空间分配一个节点),一般情况下这个数目是够用的,但是如果磁盘拥有大量小文件(小于2k),就能将Inode节点用完。

查看存储空间

$ df -h 查看有剩余空间

查看i节点

$df -i 查看inode也有剩余空间

看是那种情况,不幸的是我哪种都不是,后来在stackflow找到了答案。

问题原因: You may have reached your quota of watches.

1. 解决办法: 查看目前的最大值 To find your current limit, type this in your terminal:

$cat /proc/sys/fs/inotify/max_user_watches

增加最大值: Which is typically 8192 by default. To increase your limit, type this:

$sudo sysctl fs.inotify.max_user_watches=16384

永久设置最大值 Then restart django. To permanently set this limit, type this:

$echo 16384 | sudo tee -a /proc/sys/fs/inotify/max_user_watches

2. 解决办法:

# vim /etc/sysctl.conf

添加以下:

fs .inotify.max_user_watches = 32768

生效:

# sysctl -p /etc/sysctl.conf

再次测试:

# cd ../frontend

# setsid npm run serve

正常输出,成功。

©2020 edoou.com   京ICP备16001874号-3