我刚刚开始使用 ionic,现在在运行 ionic 的早期阶段就遇到了阻碍。
我使用的操作系统:Linux Mint 18 Cinnamon 64 位
Node 版本:v10.0.0(从 NVM 安装,无需 root 访问权限)
NPM 版本:5.6.0(从 NVM 安装,无需 root 访问权限)
我正在关注本教程: https://coursetro.com/posts/code/36/Installing-Ionic-2-&-Starting-a-Project
我通过以下方式安装 ionic :
$ 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: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="97f1e4f2e1f2f9e3e4d7a6b9a5b9a4" rel="noreferrer noopener nofollow">[email protected]</a> (node_modules/ionic/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0c6a7f697a6962787f4c3d223e223f" rel="noreferrer noopener nofollow">[email protected]</a>: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="caa9a5b8aea5bcab8af2e4fae4fa" rel="noreferrer noopener nofollow">[email protected]</a>
<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a3cacccdcac0e3908d91938d93" rel="noreferrer noopener nofollow">[email protected]</a>
added 677 packages in 16.679s
然后我检查了 cordova 和 ionic 是否通过 $ ionic -v 安装,它返回
3.20.0
我猜这意味着尽管有警告消息,但仍安装了 ionic。
然后我尝试运行教程的下一步:
$ 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 Blank 运行命令,但它返回
sudo: ionic: command not found.
我尝试安装没有全局属性的ionic,但结果是无法安装,因为npm WARN option SKIPPING OPTIONAL DEPENDENCY: [email protected]
有人能解决这个问题吗?任何帮助,将不胜感激。谢谢!
最佳答案
感谢 Nidhin 的回复,我刚刚解决了问题。
我意识到文件夹firstProject被锁定了。因此,如果您想使用 Node 和 npm,我的建议是最好使用 NVM 安装它,这样就不用使用 root 访问权限安装它。
让我告诉您如何重现问题
因此,在我实际从 NVM( Node 版本管理器)安装 Node 和 NPM 之前,我首先使用以下命令( I followed this reference )使用 sudo (根访问权限)从包管理器安装它:
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt-get install -y nodejs
这会导致我接下来的所有 npm 命令都应该使用 sudo (用于 root 访问)。
所以,当我运行此命令( following this tutorial )时:
$ 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 在运行其进程时会运行另一个命令。 Folder locked
总而言之,使用 sudo 安装 Node 和 NPM 并不是一个好主意。我还不知道使用 sudo 是否有充分的理由,如果你知道为什么,请回复评论。
根据我的情况,
我实际上做得正确:
- 从 NVM 安装 Node 和 NPM
- 无需 sudo(root 访问权限)即可安装 ionic 和 cordova
- 只需运行 ionic start 命令,例如ionic 首先启动项目空白; 但首先请确保不存在具有此名称的现有锁定文件夹 (firstProject)。
希望能帮助解决您类似的问题。
关于node.js - 错误 : EACCES: permission denied, 取消链接 - 运行 $ ionic start 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50297528/