在目录上执行Angular 6非法操作,打开'/ Users / <用户名> /。npm-global / lib / node_modules /

时间:2019-02-03 04:44:03

标签: angular6

我遵循了一个教程,这样我在使用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

该如何摆脱这个噩梦?请帮助

1 个答案:

答案 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起作用了