npm install / bower install 问题和不推荐使用 angular-phonecat 设置的模块
npm install / bower install issue and deprecated modules with angular-phonecat setup
我正在尝试 运行 npm install
在我的终端上作为 angular-phonecat 设置的一部分,按照 https://docs.angularjs.org/tutorial
上的说明
当我 运行 命令时,我遇到了已弃用模块的问题,并且在到达 bower 安装部分时出现错误。
有人知道如何更新已弃用的模块以避免警告以及如何修复 Bower 错误吗?
这是我收到的输出:
npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
-
> fsevents@1.0.14 install /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/karma/node_modules/chokidar/node_modules/fsevents
> node-pre-gyp install --fallback-to-build
[fsevents] Success: "/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/karma/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
> angular-phonecat@0.0.0 postinstall /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat
> bower install
bower EACCES EACCES: permission denied, unlink '/Users/Eamon/.cache/bower/registry/bower.herokuapp.com/lookup/jquery_d223e'
Stack trace:
Error: EACCES: permission denied, unlink '/Users/Eamon/.cache/bower/registry/bower.herokuapp.com/lookup/jquery_d223e'
at Error (native)
Console trace:
Error
at StandardRenderer.error (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/renderers/StandardRenderer.js:81:37)
at Logger.<anonymous> (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/bin/bower.js:110:26)
at emitOne (events.js:77:13)
at Logger.emit (events.js:169:7)
at Logger.emit (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/bower-logger/lib/Logger.js:29:39)
at /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/commands/index.js:48:20
at _rejected (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:844:24)
at /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:870:30
at Promise.when (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:1122:31)
at Promise.promise.promiseDispatch (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:788:41)
System info:
Bower version: 1.7.9
Node version: 4.4.0
OS: Darwin 15.6.0 x64
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.4.0
npm ERR! npm v2.14.20
npm ERR! code ELIFECYCLE
npm ERR! angular-phonecat@0.0.0 postinstall: `bower install`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the angular-phonecat@0.0.0 postinstall script 'bower install'.
npm ERR! This is most likely a problem with the angular-phonecat package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! bower install
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs angular-phonecat
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls angular-phonecat
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/npm-debug.log
我曾尝试搜索其他有类似问题的帖子,但 none 帮助我找到了解决方案:
- error when npm install
- Got an error while running "npm install" on angular-phonecat directory
- Cannot npm install for angular-phonecat tutorial : Cannot find module 'update-notifier'
我也尝试 运行ning sudo npm install
解决同样的问题。我感觉 Bower 安装问题是由于查看错误输出的 Bower 缓存设置造成的,但我不是 100% 确定。
有人在为 angular-phonecat 设置安装时遇到过类似的问题吗?
非常欢迎任何帮助。
非常感谢,
埃蒙
调查后发现 Bower 似乎存在权限问题,解决方法是 运行使用 sudo 单独安装 Bower:
sudo bower install --allow-root
但是,您不应将 sudo 与 bower 一起使用。如果您必须这样做,很可能是通过使用 sudo 安装或通过 sudo 安装您的第一个包时 ~/.cache 设置不正确。可以在此处找到有关此的更多信息:http://www.competa.com/blog/2014/12/how-to-run-npm-without-sudo/
相反,您应该通过 运行以下方式纠正所有权:
sudo chown -R $user ~/.npm
sudo chown -R $user ~/.config
要查找您的用户,您只需 运行 在命令行中输入以下命令:
$ whoami
如果你想对更广泛的组开放你也可以在chown命令中添加一个组。要找出您的用户属于哪个组,您可以键入以下命令:
$ groups
要在用户的同时设置组,只需将命令更改为以下内容并将 $user 和 $group 替换为您想要的用户和组:
sudo chown -R $user:$group ~/.npm
sudo chown -R $user:$group ~/.config
如果您在 npm 安装期间 运行 安装 Bower 时遇到如下问题之一:
EACCES: permission denied, open '/some/directory'
EACCES: permission denied, unlink '/some/directory'
您需要更改包含该文件的文件夹的权限才能成为您的用户:
sudo chown -R USER /some/directory
只需更改存储文件的文件夹,而不是文件本身。当您在此之后 运行 npm install
时,如果它需要安装任何在使用当前用户而不是使用 sudo
时遇到安装问题的 Bower 组件,它将起作用。
谢谢,
埃蒙
问题:您(用户)没有正确的目录权限集。
直接的出路是 运行 使用 sudo 安装 npm,但这可能会给你同样的错误,或者安装不正确。
AND 更改目录所有权不是一个好的选择,一个临时补丁。我正在回答这个问题,因为我觉得我对这个问题有一个更优雅的solution/suggestion。我多次遇到同样的问题,即 'npm install -g @angular/cli'。
卸载软件包并执行以下命令(按照提到的顺序)进行全新安装。
解决方案/建议:更改npm的默认目录(来自官方docs)
在继续之前备份您的计算机。
(可选)如果安装错误,请先卸载:
npm uninstall <package-name> # use sudo if you used it while installation
npm cache verify # or, npm cache clean for npm version below 5.x.x
为全局安装创建一个目录:
mkdir ~/.npm-global
配置 npm 以使用新的目录路径:
npm config set prefix '~/.npm-global'
打开或创建一个 ~/.profile
或 ~/.bash_profile
文件并添加此行:
export PATH=~/.npm-global/bin:$PATH
返回命令行,更新系统变量,或重新启动终端:
source ~/.profile
(可选)测试:在不使用 sudo 的情况下全局下载包。
npm install -g jshint
我正在尝试 运行 npm install
在我的终端上作为 angular-phonecat 设置的一部分,按照 https://docs.angularjs.org/tutorial
当我 运行 命令时,我遇到了已弃用模块的问题,并且在到达 bower 安装部分时出现错误。
有人知道如何更新已弃用的模块以避免警告以及如何修复 Bower 错误吗?
这是我收到的输出:
npm WARN deprecated tough-cookie@2.2.2: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
-
> fsevents@1.0.14 install /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/karma/node_modules/chokidar/node_modules/fsevents
> node-pre-gyp install --fallback-to-build
[fsevents] Success: "/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/karma/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
> angular-phonecat@0.0.0 postinstall /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat
> bower install
bower EACCES EACCES: permission denied, unlink '/Users/Eamon/.cache/bower/registry/bower.herokuapp.com/lookup/jquery_d223e'
Stack trace:
Error: EACCES: permission denied, unlink '/Users/Eamon/.cache/bower/registry/bower.herokuapp.com/lookup/jquery_d223e'
at Error (native)
Console trace:
Error
at StandardRenderer.error (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/renderers/StandardRenderer.js:81:37)
at Logger.<anonymous> (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/bin/bower.js:110:26)
at emitOne (events.js:77:13)
at Logger.emit (events.js:169:7)
at Logger.emit (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/bower-logger/lib/Logger.js:29:39)
at /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/commands/index.js:48:20
at _rejected (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:844:24)
at /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:870:30
at Promise.when (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:1122:31)
at Promise.promise.promiseDispatch (/Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/node_modules/bower/lib/node_modules/q/q.js:788:41)
System info:
Bower version: 1.7.9
Node version: 4.4.0
OS: Darwin 15.6.0 x64
npm ERR! Darwin 15.6.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.4.0
npm ERR! npm v2.14.20
npm ERR! code ELIFECYCLE
npm ERR! angular-phonecat@0.0.0 postinstall: `bower install`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the angular-phonecat@0.0.0 postinstall script 'bower install'.
npm ERR! This is most likely a problem with the angular-phonecat package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! bower install
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs angular-phonecat
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls angular-phonecat
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/Eamon/Documents/Scripting/Web Development/Learning/Javascript/Angularjs/angular-phonecat/npm-debug.log
我曾尝试搜索其他有类似问题的帖子,但 none 帮助我找到了解决方案:
- error when npm install
- Got an error while running "npm install" on angular-phonecat directory
- Cannot npm install for angular-phonecat tutorial : Cannot find module 'update-notifier'
我也尝试 运行ning sudo npm install
解决同样的问题。我感觉 Bower 安装问题是由于查看错误输出的 Bower 缓存设置造成的,但我不是 100% 确定。
有人在为 angular-phonecat 设置安装时遇到过类似的问题吗?
非常欢迎任何帮助。
非常感谢, 埃蒙
调查后发现 Bower 似乎存在权限问题,解决方法是 运行使用 sudo 单独安装 Bower:
sudo bower install --allow-root
但是,您不应将 sudo 与 bower 一起使用。如果您必须这样做,很可能是通过使用 sudo 安装或通过 sudo 安装您的第一个包时 ~/.cache 设置不正确。可以在此处找到有关此的更多信息:http://www.competa.com/blog/2014/12/how-to-run-npm-without-sudo/
相反,您应该通过 运行以下方式纠正所有权:
sudo chown -R $user ~/.npm
sudo chown -R $user ~/.config
要查找您的用户,您只需 运行 在命令行中输入以下命令:
$ whoami
如果你想对更广泛的组开放你也可以在chown命令中添加一个组。要找出您的用户属于哪个组,您可以键入以下命令:
$ groups
要在用户的同时设置组,只需将命令更改为以下内容并将 $user 和 $group 替换为您想要的用户和组:
sudo chown -R $user:$group ~/.npm
sudo chown -R $user:$group ~/.config
如果您在 npm 安装期间 运行 安装 Bower 时遇到如下问题之一:
EACCES: permission denied, open '/some/directory'
EACCES: permission denied, unlink '/some/directory'
您需要更改包含该文件的文件夹的权限才能成为您的用户:
sudo chown -R USER /some/directory
只需更改存储文件的文件夹,而不是文件本身。当您在此之后 运行 npm install
时,如果它需要安装任何在使用当前用户而不是使用 sudo
时遇到安装问题的 Bower 组件,它将起作用。
谢谢, 埃蒙
问题:您(用户)没有正确的目录权限集。
直接的出路是 运行 使用 sudo 安装 npm,但这可能会给你同样的错误,或者安装不正确。
AND 更改目录所有权不是一个好的选择,一个临时补丁。我正在回答这个问题,因为我觉得我对这个问题有一个更优雅的solution/suggestion。我多次遇到同样的问题,即 'npm install -g @angular/cli'。
卸载软件包并执行以下命令(按照提到的顺序)进行全新安装。
解决方案/建议:更改npm的默认目录(来自官方docs)
在继续之前备份您的计算机。
(可选)如果安装错误,请先卸载:
npm uninstall <package-name> # use sudo if you used it while installation
npm cache verify # or, npm cache clean for npm version below 5.x.x
为全局安装创建一个目录:
mkdir ~/.npm-global
配置 npm 以使用新的目录路径:
npm config set prefix '~/.npm-global'
打开或创建一个
~/.profile
或~/.bash_profile
文件并添加此行:export PATH=~/.npm-global/bin:$PATH
返回命令行,更新系统变量,或重新启动终端:
source ~/.profile
(可选)测试:在不使用 sudo 的情况下全局下载包。
npm install -g jshint