【问题标题】:cannot install node-sass therefore cannot install gulp-sass无法安装 node-sass 因此无法安装 gulp-sass
【发布时间】:2018-04-02 05:03:20
【问题描述】:

我正在尝试设置一个环境,在该环境中我可以使用带有 gulp 的 sass 编译器,我的部分环境是通过安装 gulp-sass 设置的,但是,我得到了一个错误。经过一番研究,这显然是因为我没有 node-sass。当我尝试使用

安装 node-sass
sudo npm install -g node-sass

我收到以下错误,请注意 gulp sass 的错误几乎相同。

/usr/bin/node-sass -> /usr/lib/node_modules/node-sass/bin/node-sass

> node-sass@4.5.3 install /usr/lib/node_modules/node-sass
> node scripts/install.js

Unable to save binary /usr/lib/node_modules/node-sass/vendor/linux-x64-57 : { Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/node-sass/vendor'
    at Object.fs.mkdirSync (fs.js:892:18)
    at sync (/usr/lib/node_modules/node-sass/node_modules/mkdirp/index.js:71:13)
    at Function.sync (/usr/lib/node_modules/node-sass/node_modules/mkdirp/index.js:77:24)
    at checkAndDownloadBinary (/usr/lib/node_modules/node-sass/scripts/install.js:111:11)
    at Object.<anonymous> (/usr/lib/node_modules/node-sass/scripts/install.js:154:1)
    at Module._compile (module.js:624:30)
    at Object.Module._extensions..js (module.js:635:10)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: '/usr/lib/node_modules/node-sass/vendor' }

> node-sass@4.5.3 postinstall /usr/lib/node_modules/node-sass
> node scripts/build.js

Building: /usr/bin/node /usr/lib/node_modules/node-sass/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ '/usr/bin/node',
gyp verb cli   '/usr/lib/node_modules/node-sass/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library=' ]
gyp info using node-gyp@3.6.2
gyp info using node@8.7.0 | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` succeeded python2 /usr/bin/python2
gyp verb check python version `/usr/bin/python2 -c "import platform; print(platform.python_version());"` returned: "2.7.12\n"
gyp verb get node dir no --target version specified, falling back to host node version: 8.7.0
gyp verb command install [ '8.7.0' ]
gyp verb install input version string "8.7.0"
gyp verb install installing version: 8.7.0
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version is already installed, need to check "installVersion"
gyp verb got "installVersion" 9
gyp verb needs "installVersion" 9
gyp verb install version is good
gyp verb get node dir target node version installed: 8.7.0
gyp verb build dir attempting to create "build" dir: /usr/lib/node_modules/node-sass/build
gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/node-sass/build'
gyp ERR! System Linux 4.4.0-97-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/node-sass/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /usr/lib/node_modules/node-sass
gyp ERR! node -v v8.7.0
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! node-sass@4.5.3 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the node-sass@4.5.3 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/username/.npm/_logs/2017-10-21T00_11_47_487Z-debug.log

据我所知,问题可能与 libsass 或节点本身有关,但我不知道该采取哪些步骤。

如果有人可以给我任何建议或指点,我将不胜感激。

非常感谢!

【问题讨论】:

    标签: node.js linux github npm sass


    【解决方案1】:

    如果您之前使用 sudo 运行 npm install,通常会发生此问题。 删除 node_modules 文件夹并在不使用 sudo 的情况下运行 npm install

    【讨论】:

      【解决方案2】:

      这可能是因为您的npm 安装存在权限问题:

      • This pagenpm 讨论这些问题的一般故障排除。首先完成这些步骤。

      • This GitHub issue 描述了有人解决了完全相同的问题。

      【讨论】:

      • 就是这样!非常感谢!
      【解决方案3】:

      如果您使用的是 ubuntu,请尝试以下操作:

      sudo chown -R $(whoami) ~/.npm
      

      之后不要使用 sudo

      【讨论】:

      • 我的项目突然出现了很多问题。当我运行ng test 时,我会随机得到ERROR: 'ERROR', TypeError,仅此而已。我尝试删除 node_modules 并运行 npm install 但它没有用。只有当我删除 node_modules,运行你的命令,然后npm install 然后ng test 解决了我的问题。
      【解决方案4】:

      尝试:

      sudo rm -rf node_modules && npm rebuild node-sass && npm i
      

      参考:http://froshgeek.com/fix-npm-error-permission-denied-mkdir-related-to-node-sass-macos/

      【讨论】:

        【解决方案5】:

        我解决了运行以下问题

             sudo npm cache clean -f
             sudo npm install -g n
             sudo n stable
             npm rebuild node-sass
        

        【讨论】:

          【解决方案6】:

          你可以试试这个命令

          sudo npm install -g --unsafe-perm node-sass

          【讨论】:

            【解决方案7】:

            我收到了同样的错误信息。就我而言,这是因为我使用 sudo 和非 sudo 命令来安装节点模块,你不应该这样做。 删除节点模块文件夹。 运行 npm install(不带 sudo) 运行 sudo npm update 就是这样,你可以运行 npm start。 希望它会对某人有所帮助。

            【讨论】:

              【解决方案8】:

              我在macos系统中遇到了同样的问题。我删除了 node_modules 文件夹并重新使用不带 sudo 的 npm install 成功解决了这个问题。

              【讨论】:

                【解决方案9】:

                试试这个

                sudo rm -rf node_modules/

                sudo npm install --unsafe-perm -g node-sass

                sudo npm i

                unsafe-perm 标志设置为 true 以在运行包脚本时抑制 UID/GID(用户标识符/组标识符)切换。该标志显式设置为 false 以防止非 root 用户安装包。默认情况下它的如果以 root 身份运行,则值为 false,否则为 true。如果安装 node-saas 时出现 EACCESS 错误,则通过 sudo 运行安装并将 unsafe-perm 标志设置为 true 将安装包。

                【讨论】:

                  猜你喜欢
                  • 2016-05-30
                  • 2015-10-12
                  • 2018-03-29
                  • 2019-09-08
                  • 2019-03-16
                  • 2022-12-31
                  相关资源
                  最近更新 更多