Node-sass错误(尝试重新安装)

时间:2015-05-21 20:51:16

标签: node.js ubuntu sass gruntjs node-sass

我正在尝试构建一个前端服务器,当我运行grunt时,我得到了这个错误,建议重新安装node-sass。

Aborted due to warnings.
dev@ubuntu:~/ideaProjects/web-app$ grunt app:dashboard/dev-dashboard --force
Loading "sass.js" tasks...ERROR
Error: `/home/dev/ideaProjects/web-app/node_modules/grunt-sass/node_modules/node-sass/bin/linux-x64-v8-3.28/binding.node` is missing. 
Try reinstalling `node-sass`?

奇怪的是文件(binding.node)确实存在,但它位于名为'linux-x64-v8-3.14'的文件夹中,而不是3.28。我尝试命名不起作用的文件夹3.14。我已经尝试了所有我能解决的问题,npm install node-sass,npm update,甚至清理项目并在新的构建上运行npm install。但无济于事。我反复得到这个错误。

有没有人看过这个或知道如何解决这个问题?我正在运行Ubuntu 14.04 x64

谢谢!

2 个答案:

答案 0 :(得分:6)

我在Debian Linux上遇到了与gulp-sass基本相同的错误(与grunt-sass基本相同,但是对于gulp ......两者都只是围绕 node-sass 的相应工具的包装器这是实际SASS编译器 libsass )的nodejs端口。

node-sass 项目在README.md中提到只包含#34;热门平台"(显然是Windows / Mac)的二进制文件,您可能需要构建对于其他平台。

我能够通过直接在Debian机器上显式重新运行node-sass的安装和构建脚本来解决这个问题。以下是大致的步骤:

  • 从linux机器上的命令提示符,cd到您的项目目录
  • cd到项目源中的node-sass目录。可能基于您原来的帖子cd node_modules/grunt-sass/node_modules/node-sass
  • node scripts/install.js
  • node scripts/build.js
  • 应该看到Binary is fine; exiting.之类的消息。这将为运行脚本的平台添加正确的node-sass二进制文件。
  • 尝试再次运行你的grunt构建,希望它能够正常工作!

答案 1 :(得分:4)

  

我刚刚运行npm install来安装项目依赖项。是否还有其他我应该运行的东西?(我是网络开发的新手。我是一个java / android>开发人员)

我不这么认为。基本设置,项目文件夹:

.
├── Gruntfile.js
├── node_modules
└── sass
    └── main.scss

Gruntfile.js包含:

module.exports = function (grunt) {

grunt.loadNpmTasks('grunt-sass');

grunt.initConfig({
    sass: {
        options: {
            sourceMap: true
        },
        dist: {
            files: {
                'css/main.css': 'sass/main.scss'
            }
        }
    }
});

grunt.registerTask('default', ['sass']);
}

然后运行:

npm install grunt-sass

现在你应该可以运行:

grunt

以上输出现在:

Running "sass:dist" (sass) task

Done, without errors.

请注意,npm install grunt-sass命令应输出如下所示的内容,可能与您的错误相关:

/
> node-sass@3.1.2 install /home/testdrive/sassgrunt/node_modules/grunt-sass/node_modules/node-sass
> node scripts/install.js

Binary downloaded and installed at /home/testdrive/sassgrunt/node_modules/grunt-sass/node_modules/node-sass/vendor/linux-x64-14/binding.node

> node-sass@3.1.2 postinstall /home/testdrive/sassgrunt/node_modules/grunt-sass/node_modules/node-sass
> node scripts/build.js

` /home/testdrive/sassgrunt/node_modules/grunt-sass/node_modules/node-sass/vendor/linux-x64-14/binding.node ` exists. 
 testing binary.
Binary is fine; exiting.