linux - CentOS 上没有 sudo 的 NodeJS 和 npm

标签 linux node.js permissions npm

在我的盒子上,我在/opt/node/bin 下安装了 Node 和 NPM 二进制文件。并且路径添加正确。

node -v 

npm -v 

工作正常。当我创建一个文件并使用 Node 运行它时,一切都按预期工作。但是,当我运行时:

npm init 

程序写package.json失败,因为它没有写权限。我使用:

sudo npm init

我得到一个所有者和组为 0 0 的文件,因此任何普通用户都不能修改该文件。我不想 chown Node/npm 生成的每个文件。

有没有办法让 node/npm 以与我的其他用户相同的组中的用户身份运行,并对相同的目录具有写入权限?

最佳答案

您可以简单地chown 您的/opt/ 目录,以后对npm init 的调用将归您所有。更好的是,在您的 /home 文件夹中工作,并确保 npm 和 Node 在您的 $PATH 中。这样你就不需要担心初始化新 Node 模块的权限问题。但是,您需要使用 sudo 全局安装包。根据 Nodejs 的维护者的说法,这是一种不好的做法:

http://howtonode.org/introduction-to-npm

我会跟随他在那里的设置。正如他所提到的,向包管理器授予 root 访问权限是非常危险的。

关于linux - CentOS 上没有 sudo 的 NodeJS 和 npm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21756819/

相关文章:

c# - 检查通知权限是否被授予(Xamarin,iOS)

linux - 如何修改bash命令来改变权限

python - 使用 python 自动化 Excel 宏

linux - docker运行时无法执行docker命令

linux - 在 Linux 中 1 小时后运行命令

node.js - 使用 Node.js 编写大文件

javascript - 就像我们在 Node js 中有 readFileSync 函数一样,我需要 http.getSync - http.get() 的包装器以使其同步

permissions - 可靠地在 Chrome 扩展程序中获取收藏夹图标,chrome ://favicon?

linux - bash getopts 验证选项

javascript - 使用 Promise 进行分页的最佳方法是什么?