我遵循了一个教程,这样我在使用npm install进行所有操作之前就不必使用sudo
tutorial to set npm global config to a new directory
不管我做什么,现在一切都会尝试安装到这个新的〜/ .npm-global目录。我已经删除了几次:
sudo rm -R .npm-global/
我尝试覆盖设置:
sudo npm set globalconfig ""
sudo npm set globalignorefile ""
但是无论如何,如果我尝试运行类似的内容:
sudo npm install -g @angular/cli
我仍然看到它试图安装到.npm-global,然后出现一些警告,并且通常在以下位置停止:
ERR! path /Users/<username>/.npm-global/lib/node_modules/@angular/cli/node_modules/atob/bin/atob.js
该如何摆脱这个噩梦?请帮助
答案 0 :(得分:0)
万一其他人正在经历此事,我以为我发布了我发现的东西。
首先,让我指出我已经解决了我的问题,但是它导致了许多其他问题,因此请谨慎行事:
brew uninstall --force node
brew cleanup
sudo rm -f /usr/local/bin/npm
sudo rm -f /usr/local/lib/dtrace/node.d;
sudo rm -rf ~/.npm;
第二,我说我有一个较旧的操作系统Yosemite,它不再支持brew。结果,卸载确实删除了节点,但是它也取消了与php和apache相关的许多链接的链接,这使我不得不手动重新安装,配置,制作等……只是回到了我以前的位置。这些错误开始发生。
这包括从运行配置,生成,安装的php.net下载php 5.6.9,这无济于事,因为它重写了许多配置文件,包括我的httpd.ssl.conf文件,这将在后面提到。顺便说一句,brew更新表示一切都是最新的。它也会警告我brew不再支持我的操作系统,这就是为什么我必须手动安装东西。
将我的机器恢复到原来的位置,包括重新编写我的httpd.conf,httpd-vhosts.conf和httpd-ssl.conf文件,这些文件绝对不在本文讨论范围之内,但是我想我会如果您应该采用这种方法,请警告您要存储的内容。
另外,在配置,制作,安装之后,我花了几个小时使用brew brew链接重新链接-以下是一小段清单:
autoconf
automake
cloog-ppl015
composer
faac
ffmpeg
gdbm
gmp4
imagemagick
lame
libevent
libgpg-error
libksba
libmpc08
libtiff
libtool
libvo-aacenc
libyaml
mcrypt
mhash
mpfr2
mysql
nginx
ossp-uuid
pcre
php56
php56-http
php56-igbinary
php56-mcrypt
php56-memcache
php56-memcached
php56-mongo
php56-opcache
php56-propro
php56-raphf
php56-tidy
php56-xdebug
postgresql
ppl011
pv
python
unixodbc
x264
xvid
xz
我能够通过执行brew更新,然后由brew医生找到此列表。接下来,键入以下命令来修复apache发现的任何错误:
sudo apachectl restart
httpd -t
httpd -S
php --version
一旦我处理了所有的错误,并且该模块未加载,则系统返回到错误发生之前的位置。有问题的错误发布在我对
发表的另一篇文章中stackoverflow.com for not being able to do an ng build --prod
还有一个BTW,即使这对我来说不再是一个问题,但仍有许多其他错误使ng无法创建版本,例如类型'HTMLElement'上不存在属性'value',属性'shoppingCart'在{}等类型上不存在,但是至少该应用程序具有完整的功能,以及它发布到的PHP API,这是处理其余错误的一个很好的起点。
另一件事,在重新安装后,由于尝试连接到mysql,我收到以下错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)
原来是因为重新安装,以及当我尝试使用MAMP进行连接时,正在运行其他mysql实例。通过遵循following post
的答案之一中的说明,我能够解决此问题。首先,停止服务器: mysqld停止
这是我最初了解到多个进程由于以下重复错误而运行的地方:
2019-02-04 09:58:22 70222 [ERROR] InnoDB: Unable to lock ./ibdata1, error: 35
2019-02-04 09:58:22 70222 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
然后找出正在运行的内容:
ps aux | grep mysql
接着(反复)使用kill命令,直到剩下我需要的实例为止,然后mysql -u root -p起作用了