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
正常输出,成功。