首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过npm安装SKPM (草图插件管理器)

通过npm安装SKPM (草图插件管理器)
EN

Stack Overflow用户
提问于 2017-12-19 02:04:25
回答 3查看 677关注 0票数 4

我一直在尝试安装一个npm软件包,它一直在抛出一些我不太熟悉的错误。请记住,这些错误是在执行sudo npm install -g skpm 之后发生的。

代码语言:javascript
复制
gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/skpm/node_modules/keytar/build'
gyp ERR! System Darwin 17.3.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/skpm/node_modules/keytar
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! keytar@4.1.0 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the keytar@4.1.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/USERNAME/.npm/_logs/2017-12-19T01_53_44_910Z-debug.log

最初,我认为我需要安装keytar来完成这项工作,但是在安装之后,我仍然有相同的错误。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-22 15:21:22

我发现了为什么skpm没有安装的问题。

确保安装x-code +命令行工具访问

这解决了问题,并安装了SKPM。

票数 1
EN

Stack Overflow用户

发布于 2017-12-21 23:02:59

sudo npm -g install编译过程中,避免使用,您会反复遇到这样的问题。解决方案是修复权限。

来自npm文档的报价

您可以使用以下三个选项之一解决此问题:

  1. 将权限更改为npm的默认目录。
  2. 将npm的默认目录更改为另一个目录。
  3. 使用包管理器安装Node,该管理器为您处理此问题。在前进之前,你应该备份你的电脑.

选项1:将权限更改为npm的默认目录

查找到npm目录的路径:npm config get prefix,对于许多系统,这将是/usr/local

警告:如果显示的路径只是/usr,切换到选项2,否则您的权限就会混乱。

将npm目录的所有者更改为当前用户的名称(您的用户名!):

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

这将更改npm和其他一些工具(lib/node_modules、bin和share)所使用的子文件夹的权限。

选项2:将npm的默认目录更改为另一个目录

有时,您不希望更改npm使用的默认目录(即/usr)的所有权,因为这可能会导致一些问题,例如,如果您与其他用户共享系统。

相反,您可以配置npm来使用完全不同的目录。在我们的示例中,这将是主文件夹中的一个隐藏目录。

为全局安装创建一个目录:

mkdir ~/.npm-global

配置npm以使用新目录路径:

npm config set prefix '~/.npm-global'

打开或创建一个~/..profile文件并添加以下行:

export PATH=~/.npm-global/bin:$PATH

回到命令行,更新系统变量:

source ~/.profile

测试:在不使用sudo的情况下全局下载包。

npm install -g jshint

与步骤2-4不同,您可以使用相应的ENV变量(例如,如果您不想修改~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global

选项3:使用包管理器为您处理此问题。

如果您正在Mac上重新安装Node,则可以通过使用来完全避免此问题。使用正确的权限,自制软件可以根据实际情况进行设置。

brew install node

票数 2
EN

Stack Overflow用户

发布于 2017-12-21 16:52:04

通常,EACCES: permission denied会在不提供权限的情况下尝试全局安装包(带有-g)。假设您正在使用sudo的os,请尝试调用。

代码语言:javascript
复制
sudo npm install -g skpm

或者,如果你不希望它是全球性的

代码语言:javascript
复制
npm install skpm
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47879051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档