节点 0.12.2 上的节点 sass 2.1.1:找不到“libsass”绑定。尝试重新安装 `node-sass`

Posted

技术标签:

【中文标题】节点 0.12.2 上的节点 sass 2.1.1:找不到“libsass”绑定。尝试重新安装 `node-sass`【英文标题】:node-sass 2.1.1 on node 0.12.2: `libsass` bindings not found. Try reinstalling `node-sass` 【发布时间】:2015-07-15 19:48:36 【问题描述】:

我知道这可能与这些重复: Try reinstalling `node-sass` on node 0.12? 和 how to uninstall npm modules in node js?

我们团队的环境如下:

<bitbucket git repo>
    /sourcetree\
<local windows/mac machines>
    \rsync to server/
<ubuntu 14.04 dev server>
     <vhost for each dev via proxy pass to rel. port>

我们更喜欢通过 package.json 文件处理所有模块,更容易设置新的开发机器。只需一个简单的npm install

问题是......当node-sass通过npm install下拉到本地Windows机器然后同步到开发服务器时,我们不断收到错误:

错误:libsass 未找到绑定。尝试重新安装node-sass

但是当模块在服务器上重建时一切都很好:s。如,在ubuntu服务器上运行:

npm rebuild node-sass

但是然后obv。当来自开发机器的文件集同步到服务器时,这会擦除重建的文件,我们又回到了错误。

当我们尝试在同步到服务器之前在本地机器上运行重建时,这并不能解决任何问题。

虽然我们可以在 rsync 命令中排除node-sass,但这意味着我们在设置开发机器时会出现不一致。

【问题讨论】:

【参考方案1】:

我找到了解决方法,而不是使用 node-sass 我找到了node-sass-middleware

https://github.com/sass/node-sass-middleware

app.use('/css', sassMiddleware(
    src: __dirname + '/sass',
    dest: __dirname + '/public/css',
    debug: true,
    outputStyle: 'expanded' /*'compressed',*/
));

但我仍然需要运行

npm rebuild node-sass

并在 rsync 命令中添加一个 --exclude 标志,以防止节点中间件模块中的 node-sass 目录与 npm 重建实际所做的任何事情发生冲突。

【讨论】:

以上是关于节点 0.12.2 上的节点 sass 2.1.1:找不到“libsass”绑定。尝试重新安装 `node-sass`的主要内容,如果未能解决你的问题,请参考以下文章

create-react-app 上的 node-sass 问题

节点包和节点 sass 中的错误

节点 Sass 错误:找不到模块“mkdirp”

npm 只是不会安装节点 sass

text 节点sass

javascript 节点Sass配置