尝试在mac上使用npm时出现以下错误。我在Mac 10.10.1
上$ npm
Error: ENAMETOOLONG, mkdir '/Users/LM/npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli '-g',
npm verb cli 'config',
npm verb cli 'get',
npm verb cli 'prefix' ]
npm info using npm@2.1.6
npm info using node@v0.10.33
npm verb node symlink /usr/local/bin/node
/Users/LM/Desktop/Titanium Studio/TitaniumStudio.app/Contents/MacOS/npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli '-g',
npm verb cli 'config',
npm verb cli 'get',
npm verb cli 'prefix' ]
npm info using npm@2.1.6
npm info using node@v0.10.33
npm verb node symlink /usr/local/bin/node
/Users/LM/Desktop/Titanium Studio/TitaniumStudio.app/Contents/MacOS/npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli '-g',
npm verb cli 'config',
npm verb cli 'get',
npm verb cli 'prefix' ]
npm info using npm@2.1.6
npm info using node@v0.10.33
npm verb node symlink /usr/local/bin/node
/usr/local
npm verb exit [ 0, true ]
npm info ok
npm verb exit [ 0, true ]
npm info ok
npm verb exit [ 0, true ]
npm info ok'
任何想法意味着什么以及如何解决?
答案 0 :(得分:0)
我认为问题是由权限引起的。尝试更改权限,如下所示:
解锁主目录中的权限。
sudo chown -R `whoami` ~/.npm
如果1不起作用,请获取node_modules
目录的写入权限。
sudo chown -R `whoami` /usr/local/lib/node_modules
如果您仍然遇到错误,请更新/usr/local
的许可。
sudo chown -R `whoami` /usr/local
希望它有所帮助。
答案 1 :(得分:0)
错误ENAMETOOLONG表示nodejs(或OS)正在尝试使用超出操作系统最大值的路径名组件(在OSX的情况下,31)。
首先,您尝试从哪里安装nodejs?这可能是您的问题的原因。我从来没有使用过Titanium Studio,但你的问题是这样的,你正在使用的是nodejs。
您可能最好直接从github安装节点。以下内容可以帮助您入门。
mkdir ~/src
cd ~/src
git clone https://github.com/joyent/node.git
cd node
git checkout v0.10.33
mkdir ~/local
./configure --prefix=$HOME/local/node
make
make install
不要忘记将$ HOME / local / node / bin添加到PATH环境变量中。 您可以通过
测试节点安装node -v
curl http://npmjs.org/install.sh | sh
您可以通过
测试您的npm安装npm -v
答案 2 :(得分:0)
这里提出了几个解决方案,其中有人有完全相同的问题,也使用钛工作室:https://developer.appcelerator.com/question/179230/unable-to-properly-update-titanium-studio
手动更新CLI,Node.ACS和Alloy
sudo npm install -g alloy@1.5.1
sudo npm install -g titanium@3.4.1
sudo npm install -g acs
更改目录的权限
sudo chown -R whoami
〜/ .npm
虽然看起来最后一件事没有用。您可能还想查看此处:NPM throws error without sudo
答案 3 :(得分:0)
npm
可执行文件的位置首先,找出系统中存在npm
个可执行文件的位置:
$ which -a npm
这应该输出两个或更多系统路径。
$PATH
然后,确定命令执行的搜索路径:
$ echo $PATH
这将为您提供一个以冒号分隔的目录列表,您的会话正在搜索npm
等可执行文件。
npm
Appcelerator Titanium损坏了系统的一个或多个方面。您可能希望暂时卸载Titanium。
否则,为了优先安装另一个Node.js,您可以编辑$PATH
或更简单地创建一个shell alias
。例如:
$ alias npm=/usr/local/bin/npm
在大多数情况下,您可以将其“保存”在~/.bash_profile
文件中(只需复制并粘贴文本,就像您在提示符处一样),以便将其应用于将来的shell会话。