【问题标题】:npm install permission denied (macOS)npm 安装权限被拒绝 (macOS)
【发布时间】:2019-01-28 17:50:16
【问题描述】:

要安装 Bootstrap 主题,我想运行 npm install。但是我总是收到一个权限被拒绝的错误。

我已经尝试过nvm,然后切换到nvm use 10.9.0 运行npm install

我也试过sudo chown -R $(whoami) ~/.npmsudo chown -R $USER /usr/local/lib/node_modules。都没有解决它,现在我有点不知道如何继续。我使用 macOS High Sierra。

Marcs-MBP-3:masterclass Marc$ npm install
npm WARN deprecated gulp-uglifyjs@0.6.2: Since gulp-sourcemaps now works, use gulp-uglify instead
npm WARN deprecated babel-preset-es2015@6.24.1: ????  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! 
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN checkPermissions Missing write access to /Users/Marc/Desktop/Dev/masterclass/node_modules
npm ERR! path /Users/Marc/Desktop/Dev/masterclass/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/Users/Marc/Desktop/Dev/masterclass/node_modules'
npm ERR!  { [Error: EACCES: permission denied, access '/Users/Marc/Desktop/Dev/masterclass/node_modules']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/Users/Marc/Desktop/Dev/masterclass/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/Users/Marc/Desktop/Dev/masterclass/node_modules' }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/Marc/.npm/_logs/2018-08-22T12_46_51_786Z-debug.log

【问题讨论】:

    标签: node.js npm npm-install


    【解决方案1】:

    对于 Mac;

    在终端上运行它>

    sudo chown -R $USER /usr/local/lib/node_modules
    

    【讨论】:

    • 可以确认,在 Mac OS Catalina 上遇到了这个问题,这解决了这个问题
    • 这也解决了 MacOS High Sierra 上的问题。
    • 我今天也试过了,它对我有用,使用 Mac OS Catalina ??‍♂️?
    • 在 Big Sur 上,sudo chown -R $USER /usr/local/bin
    • 这解决了我在 Mac 中的问题
    【解决方案2】:

    使用ls -l /Users/Marc/Desktop/Dev/masterclass/ 检查项目根目录的权限。如果所有者不是$USER,请删除您的node_modules 目录,尝试更改该目录的所有者并再次运行npm install

    cd /Users/Marc/Desktop/Dev
    rm -rf ./masterclass/node_mdoules/
    chown -R $USER ./masterclass/
    cd masterclass    
    npm install
    

    【讨论】:

      【解决方案3】:

      我在 Big Sur 上尝试了这个线程中的所有内容,但没有运气,但后来我尝试了这个:

      sudo npm install -g yarn
      

      它成功了!

      【讨论】:

      • 经过一天的尝试,我解决了我的问题。谢谢@Meowsleydale
      【解决方案4】:

      KIndly 运行以下命令:

      1. 检查包裹的位置:

        npm config get prefix

      2. 然后运行:

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

      3. 输入密码并运行安装命令

      它对我有用。

      【讨论】:

        【解决方案5】:

        我遇到了类似的问题,但接受的答案对我不起作用,所以我会发布我的解决方案以防其他人需要它。

        我在一个从 GitHub 克隆的项目中运行 npm install,在克隆期间,无论出于何种原因,项目目录实际上都没有设置写权限。要检查这是否是您的问题,请打开终端并输入以下内容:

        cd path/to/project/parent/directory
        ls -l
        

        如果目录具有用户写入权限,则输出将在第一组权限中包含w

        drwxr-xr-x  15 user  staff  480 Sep 10 12:21 project-name
        

        这假设您正在尝试访问当前用户的主目录结构中的项目。要确保当前用户拥有项目目录,请按照已接受答案中的说明进行操作。

        【讨论】:

          【解决方案6】:

          我输入了以下内容:

          cd /Users/Marc/Desktop/Dev
          rm -rf ./masterclass/node_mdoules/
          chown -R $USER ./masterclass/
          cd masterclass    
          npm install
          

          一旦完成,结果会显示警告和一个通知,而不是之前没有权限和错误的结果。

          然后我输入了以下内容:

          % sudo npm install --global firebase-tools
          

          我的结果是在完成最后一个终端输入后成功。

          【讨论】:

          • 太棒了,我也遇到了 firebase-tools 安装问题
          【解决方案7】:

          对我来说,

          npm cache clean --force
          rm -rf node_modules
          npm install
          

          我尝试手动删除但没有帮助

          【讨论】:

            【解决方案8】:

            NPM_CONFIG_PREFIX=~/.npm-global

            将此行复制到您的终端,然后按Enter。然后安装你需要的必要包,不要在 npm 前面加上“sudo”这个词。

            即,

            npm install -g jshint
            

            【讨论】:

              【解决方案9】:

              我为 nodemon 做了这个,它可以工作

              sudo chown -R $USER /usr/local/lib/node_modules
              

              然后安装你需要的包

              【讨论】:

                【解决方案10】:

                我有同样的问题,因为我是从 pkg 安装的,我用下面的步骤解决了这个问题:

                1. sudo rm -rf  /usr/local/lib/node_modules/npm/
                2. brew doctor
                3. brew cleanup --prune-prefix ( or sudo rm -f /usr/local/include/node)
                4. brew install node
                

                【讨论】:

                  【解决方案11】:

                  我使用这个命令: sudo npm install -g @angular/cli 提供密码并为 mw 工作。安装 Angular 花了 10 秒

                  【讨论】:

                    【解决方案12】:

                    唯一对我有用的东西sudo npm i -g clasp --unsafe-perm

                    【讨论】:

                      猜你喜欢
                      • 2019-10-18
                      • 2018-01-13
                      • 1970-01-01
                      • 1970-01-01
                      • 2019-08-05
                      • 2019-11-16
                      • 2018-01-19
                      • 1970-01-01
                      • 2020-08-27
                      相关资源
                      最近更新 更多