node.js - 错误:EACCES:权限被拒绝,取消链接 - 运行时 $ ionic start
问题描述
我刚刚开始使用 ionic,现在我在运行 ionic 的早期阶段面临着一个障碍。
我正在使用操作系统:Linux Mint 18 Cinnamon 64 位
节点版本:v10.0.0(从 NVM 安装,无需 root 访问)
NPM 版本:5.6.0(从 NVM 安装,无需 root 访问)
我正在关注本教程: https ://coursetro.com/posts/code/36/Installing-Ionic-2-&-Starting-a-Project
我通过以下方式安装离子:
$ npm install -g ionic cordova
它返回这个:
home/brian/.nvm/versions/node/v10.0.0/bin/cordova -> /home/brian/.nvm/versions/node/v10.0.0/lib/node_modules/cordova/bin/cordova
/home/brian/.nvm/versions/node/v10.0.0/bin/ionic -> /home/brian/.nvm/versions/node/v10.0.0/lib/node_modules/ionic/bin/ionic
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.3 (node_modules/ionic/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.3: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})
cordova@8.0.0
ionic@3.20.0
added 677 packages in 16.679s
然后我检查了 $ ionic -v 是否安装了 cordova 和 ionic ,它返回
3.20.0
我想这意味着尽管有 WARN 消息,仍安装了离子。
然后我尝试运行教程的下一步:
$ ionic start firstProject blank
然后出现此错误:
? The directory firstProject contains file(s) that could conflict. Would you like to overwrite the directory with this new project? Yes
:heavy_multiplication_x: Creating directory ./firstProject - failed!
Error: EACCES: permission denied, unlink ‘/home/brian/firstProject/.editorconfig’
我试图通过以下方式授予该路径的权限:
$ sudo chown -R brian /home/brian/firstProject/.editorconfig
但是,当我运行 $ ionic start firstProject blank 时,同样的错误仍然存在
我也尝试过使用 root $ sudo ionic start firstProject 空白运行命令,但它返回
sudo: ionic: command not found.
我试图安装没有全局属性的 ionic,但结果是它无法安装,因为 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.3
有没有人能够解决这种问题?任何帮助,将不胜感激。谢谢!
解决方案
感谢 Nidhin 的回复,我刚刚解决了这个问题。
我意识到文件夹 firstProject 已被锁定。所以我的建议如果你想使用 node 和 npm,最好使用 NVM 安装它,这样你就不要使用 root 访问安装它。
让我告诉如何重新创建问题
因此,在我从 NVM(节点版本管理器)实际安装 Node 和 NPM 之前,我首先使用 sudo(root 访问权限)使用此命令从包管理器安装它(我遵循此参考):
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
然后导致我所有以下 npm 命令都应使用 sudo (用于 root 访问)。
因此,当我运行此命令时(遵循本教程):
$ npm install -g ionic cordova
我无法安装它:
npm WARN checkPermissions Missing write access to /usr/lib/node_modules
我需要使用 root 访问权限来安装它:
$ sudo npm install -g ionic cordova
然后,这使得 ionic 和 cordova 始终以 root 访问权限运行——我认为你应该避免它!
所以从这里继续,我按照教程运行下一个命令:
$ ionic start firstProject blank
然后使文件夹 /firstProject/ 需要 root 访问权限(见附图)。并且继续使用 sudo 并不是一个好主意,因为有时 ionic 在运行它的进程时会运行另一个命令。 文件夹锁定
总之,使用 sudo 安装 Node 和 NPM 并不是一个好主意。我还不知道是否有使用 sudo 的充分理由,如果您知道原因,请回复评论。
所以按照我的情况,
我实际上已经正确地做到了:
- 从 NVM 安装 Node 和 NPM
- 在没有 sudo 的情况下安装 ionic 和 cordova(root 访问权限)
- 只需运行 ionic start 命令,例如 ionic start firstProject blank;但首先确保不存在同名的锁定文件夹(firstProject)。
我希望它有助于解决您的类似问题。
推荐阅读
- javascript - 地图内的JS地图
- python - sqlalchemy,连接到不同端口上的 sqlexpress 实例
- python - QWebEngineView中央小部件时如何在QWebEngineView之上制作QFrame
- flutter - Flutter - 在BottomNavigationBar的中间图标添加弹出菜单按钮
- java - 设置值回到开始
- react-native - 如何在json响应完成之前开始渲染反应原生
- visual-studio - 如何在不使用 Visual Studio 的情况下运行程序
- javascript - 在单个事件中处理多个功能
- compilation - 如何在 Juno 命令提示符中解决可能来自 PyPlot 的“LoadError:无法加载库编译错误”?
- python - 无法正确添加行数据