【问题标题】:Error running gulp sass运行 gulp sass 时出错
【发布时间】:2015-12-09 17:29:13
【问题描述】:

我从离子开始。很多人都面临同样的错误,但我尝试了所有找到的答案,但没有得到结果。

当我运行:ionic setup sass 时,最后我得到了这个错误

npm 安装成功

Updated F:\Documents\SED\Appli\Demo\www\index.html <link href> references to sass compiled css

Ionic project ready to use Sass!
 * Customize the app using scss/ionic.app.scss
 * Run ionic serve to start a local dev server and watch/compile Sass to CSS

F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:22
    throw new Error('`libsass` bindings not found. Try reinstalling `node-sass`?');
    ^

Error: `libsass` bindings not found. Try reinstalling `node-sass`?
    at getBinding (F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:22:11)
    at Object.<anonymous> (F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:188:23)



at Module._compile (module.js:434:26)
at Object.Module._extensions..js (module.js:452:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\index.js:3:17)
at Module._compile (module.js:434:26)

Exception with  (CLI v1.6.4)

Your system information:

Cordova CLI: 5.3.1
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.0
Ionic Version: 1.1.0
Ionic CLI Version: 1.6.4
Ionic App Lib Version: 0.3.8
OS: null
Node Version: v4.0.0

我尝试重新安装 gulp,但出现此错误:

$ npm install gulp-sass
npm WARN package.json demo@1.0.0 No repository field.
npm WARN package.json demo@1.0.0 No README data
npm WARN package.json demo@1.0.0 No license field.
npm WARN deprecated pangyp@2.3.2: use node-gyp@3+, it does all the things





> node-sass@2.1.1 install F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass
> node scripts/install.js

Can not download file from https://raw.githubusercontent.com/sass/node-sass-binaries/v2.1.1/win32-x64-node-4.0/binding.node

> node-sass@2.1.1 postinstall F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass
> node scripts/build.js

gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: 404 status code downloading 64-bit node.lib
gyp ERR! stack     at Request.<anonymous> (F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass\node_modules\pangyp\lib\install.js:403:20)
gyp ERR! stack     at emitOne (events.js:82:20)
gyp ERR! stack     at Request.emit (events.js:169:7)
gyp ERR! stack     at Request.onRequestResponse (F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass\node_modules\pangyp\node_modules\request\request.js:1255:10)
gyp ERR! stack     at emitOne (events.js:77:13)
gyp ERR! stack     at ClientRequest.emit (events.js:169:7)
gyp ERR! stack     at HTTPParser.parserOnIncomingClient (_http_client.js:415:21)
gyp ERR! stack     at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
gyp ERR! stack     at Socket.socketOnData (_http_client.js:305:20)
gyp ERR! stack     at emitOne (events.js:77:13)
gyp ERR! System Windows_NT 10.0.10240
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "F:\\Documents\\SED\\Appli\\Demo\\node_modules\\gulp-sass\\node_modules\\node-sass\\node_modules\\pangyp\\bin\\node-gyp" "rebuild"
gyp ERR! cwd F:\Documents\SED\Appli\Demo\node_modules\gulp-sass\node_modules\node-sass
gyp ERR! node -v v4.0.0
gyp ERR! pangyp -v v2.3.2
gyp ERR! not ok
Build failed
gulp-sass@1.3.3 node_modules\gulp-sass
├── clone@0.1.19
├── map-stream@0.1.0
├── vinyl-sourcemaps-apply@0.1.4 (source-map@0.1.43)
├── gulp-util@3.0.6 (array-differ@1.0.0, array-uniq@1.0.2, beeper@1.1.0, lodash._reinterpolate@3.0.0, lodash._reevaluate@3.0.0, lodash._reescape@3.0.0, object-assign@3.0.0, replace-ext@0.0.1, minimist@1.2.0, vinyl@0.5.3, chalk@1.1.1, lodash.template@3.6.2, through2@2.0.0, multipipe@0.1.2, dateformat@1.0.11)
└── node-sass@2.1.1 (get-stdin@4.0.1, object-assign@2.1.1, replace-ext@0.0.1, chalk@0.5.1, cross-spawn@0.2.9, semver@4.3.6, mkdirp@0.5.1, meow@3.3.

enter code here

感谢您的帮助。

【问题讨论】:

  • 运行 sduo npm install node-sass 然后再次对您的项目进行 sass 设置。
  • 我做到了,当我运行 ionic setup sass 时,我得到了同样的错误

标签: node.js sass ionic-framework


【解决方案1】:

那个 404 的 URL:

https://raw.githubusercontent.com/sass/node-sass-binaries/v2.1.1/win32-x64-node-4.0/binding.node

是从lib/extensions.js 生成的:

function getBinaryName() {
  var binaryName;

  if (flags['--sass-binary-name']) {
    binaryName = flags['--sass-binary-name'];
  } else if (process.env.SASS_BINARY_NAME) {
    binaryName = process.env.SASS_BINARY_NAME;
  } else if (pkg.nodeSassConfig && pkg.nodeSassConfig.binaryName) {
    binaryName = pkg.nodeSassConfig.binaryName;
  } else {
    binaryName = [process.platform, '-',
                  process.arch, '-',
                  process.versions.modules].join('');
  }

  return [binaryName, 'binding.node'].join('_');
}

确实该文件在 repo 中不存在,所以我猜这里出了问题的是其他 ifs 都没有实现,所以它作为最后的手段落到了那个 URL .

我们可以通过确保设置SASS_BINARY_NAME 环境变量或传入标志来解决此问题。我今天没有时间自己进一步调试!祝你好运,互联网。

【讨论】:

    【解决方案2】:

    我降级了nodeJs的版本,它解决了我使用V0.12.7的问题

    【讨论】:

      【解决方案3】:

      这 (workaround) 对我有效并修复了所有问题。

      从这个设置开始:

      科尔多瓦 CLI:5.3.3 Gulp 版本:CLI 版本 3.9.0 Gulp local:本地版本 3.9.0 离子版本:1.1.0 离子 CLI 版本:1.6.5 离子应用程序库版本:0.3.9 ios-deploy 版本:未安装 ios-sim 版本:5.0.1 操作系统:Mac OS X 优胜美地 节点版本:v4.1.1 Xcode 版本:Xcode 6.4 Build 6E35b 版

      我找到了一种避免使用“sudo”命令的方法。我们需要在此之前修复 npm 权限:https://docs.npmjs.com/getting-started/fixing-npm-permissions 并在此处修复 Node 的权限:http://mawaha.com/permission-fix-node-js/ 在此之后,我们可以检查并重新安装没有 'sudo' 的 npm、n 或 ionic 软件。

      我遵循了这一步:

      npm install -g n
      rm -R node_modules/ 
      npm install node-sass@3.3.3 
      npm -g install node-gyp@3
      npm uninstall gulp-sass
      npm install gulp-sass@2 
      npm rebuild node-sass 
      ionic setup sass 
      

      为什么选择 node-sass@3.3.3?因为它适用于最新的离子版本:https://github.com/driftyco/ionic/pull/4449

      【讨论】:

      • 或者你可以try this
      • 这是我帖子中的同一个链接 :-) 但我建议避免对 npm 和 ionic 使用 'sudo' 命令
      【解决方案4】:

      我遇到了同样的问题。我解决它的方法是首先将 gulp-sass 安装为:

      npm install -g gulp-sass
      

      然后到项目目录安装节点依赖为:

      npm install
      

      然后,终于跑了:

      ionic setup sass
      

      成功!这对我有用。

      【讨论】:

        【解决方案5】:

        这可能是较旧的 NodeJS 或 NPM 版本的依赖地狱问题,因为较旧版本的 gulp-sass 和 node-sass 不适用于 NodeJS 版本 >= 4,例如参见 @ 987654321@

        【讨论】:

          【解决方案6】:

          @Francesco 的解决方案对我很有效。

          但我只需要多一步:将 node.js 降级到 0.12.7 版本。

          还要将 sudo 添加到全局命令行。

          所以回顾一下这是我必须做的:

          sudo npm install -g n
          n 0.12.7
          rm -R node_modules/ 
          npm install node-sass@3.3.3 
          sudo npm -g install node-gyp@3
          npm uninstall gulp-sass
          npm install gulp-sass@2 
          npm rebuild node-sass 
          ionic setup sass
          ionic serve
          

          您现在可以修改文件 scss/ionic.app.scss 并检查它。

          【讨论】:

          • 发布新答案真的有必要吗? OP 已经发布了一个答案,指出他们需要专门降级到 0.12.7。
          • 我觉得有必要花时间来写,因为接受的答案对我来说还不够。 @francesco 解决方案很好。但它不包括降级步骤。所以我认为它可能对其他人有用。
          • 其他答案不用总结了。所有的信息都已经在这里了,这个答案是多余的。
          【解决方案7】:

          先卸载gulp-sass

          --> npm uninstall gulp-sass
          

          安装新版本

          --> npm install gulp-sass@2
          

          【讨论】:

            【解决方案8】:

            执行以下步骤

            编辑你的 package.json。变化:

            "gulp-sass": "^2.?.?"
            

            "gulp-sass": "3.0.0"
            

            移除 node_modules 文件夹并再次运行 npm install。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-12-04
              • 2015-06-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多