我正在尝试构建一个前端服务器,当我运行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
谢谢!
答案 0 :(得分:6)
我在Debian Linux上遇到了与gulp-sass基本相同的错误(与grunt-sass基本相同,但是对于gulp ......两者都只是围绕 node-sass 的相应工具的包装器这是实际SASS编译器 libsass )的nodejs端口。
node-sass 项目在README.md中提到只包含#34;热门平台"(显然是Windows / Mac)的二进制文件,您可能需要构建对于其他平台。
我能够通过直接在Debian机器上显式重新运行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二进制文件。答案 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.