sudo npm install 给我一个访问被拒绝
我正在使用 ionic,并且已经通过 git 将我的项目从 machine1 提取到 machine2。
我的 ionic 信息给了我这个:
[ERROR] Error with ./node_modules/@ionic/app-scripts/package.json file: FILE_NOT_FOUND
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.19.0 ionic (Ionic CLI) : 3.19.0
local packages:
@ionic/app-scripts : not installed Ionic Framework : ionic-angular 3.7.1
System:
Node : v8.9.1 npm : 5.5.1 OS : macOS High Sierra
Misc:
backend : pro
当我运行
sudo npm install
时,我得到了以下信息:
npm WARN checkPermissions Missing write access to /Users/gerald/Documents/ionic/yesterdayweather/node_modules npm WARN checkPermissions Missing write access to /Users/gerald/Documents/ionic/yesterdayweather/node_modules/@ionic
And then
gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/Users/gerald/Documents/ionic/yesterdayweather/node_modules/node-sass/build' gyp ERR! System Darwin 17.2.0 gyp ERR! command "/usr/local/Cellar/node/8.9.1/bin/node" "/Users/gerald/Documents/ionic/yesterdayweather/node_modules/node-gyp/bin/nod e-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" gyp ERR! cwd /Users/gerald/Documents/ionic/yesterdayweather/node_modules/node-sass gyp ERR! node -v v8.9.1 gyp ERR! node-gyp -v v3.6.2 gyp ERR! not ok Build failed with error code: 1 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] postinstall:
node scripts/build.js
npm ERR! Exit status 1
我尝试了以下解决方案 1 和 3。
基本上我认为我已经以 pkg 方式安装了 node,所以我删除了它并使用 brew 安装了它,所以实际上我应该没有这个问题。
但我还是尝试了选项 1,它仍然不起作用。
有什么想法吗?
谢谢!
似乎有一个脚本正在尝试写入文件,npm 在以 root 身份运行时默认拒绝此操作。您可以在命令后面放置
--unsafe-perm
来禁用此保护措施。
您也不应该使用 sudo 运行 npm install,因为这不是必需的。
只有在使用
-g
标志全局安装模块时才应该使用 sudo。
2019 EDIT: 毋庸置疑,禁用这样的安全保护措施可能非常危险,因为您给了脚本自由通行证来做它想做的任何事情。最好不要同时使用 sudo 和 npm,即使在全局安装模块时也是如此。如果您在使用 npm 时遇到访问问题,请 使用版本管理器 或 更改 npm 的默认目录 。
您不应使用
sudo npm install
。清理您的环境(请参阅我的回答
此处
中的更多内容),然后仅运行
npm install
。