【问题标题】:Running local node verison different than global with gulp and node-sass使用 gulp 和 node-sass 运行与全局不同的本地节点版本
【发布时间】:2017-04-22 22:55:10
【问题描述】:

我有一个使用 node npm 和 gulp 的项目。当我们构建项目时,节点 5 安装在本地目录中并运行 npm install(再次编译所有节点模块到节点 v5)​​我全局安装了节点版本 7。

我们有一个使用 node-sass 的 gulp 任务,它是针对 v5 编译的,但是当我尝试运行该任务时,它使用全局版本,并且 node-sass 错误输出“缺少绑定”

如何使用本地版本的节点运行它?

【问题讨论】:

  • 在 gulpfile 中,你是 require-ing node-sass 吗?如果你是,它应该从本地 node_modules 包中提取,除非你通过npm link node-sass 创建了符号链接。如果你不是require-ing 包,那就是问题所在。

标签: node.js npm node-sass


【解决方案1】:

安装/重建解决方案都没有为我解决问题(使用 gulp)。

这是我的解决方法:

1) 从repository 下载缺少的绑定文件。

2) 重命名文件binding.node

3) 创建/node-modules/vendor/<operating system>/(对于我的node/node-sass 版本,linux 的<operating system> 目录是linux-x64-64,使用缺少绑定错误消息中的文件夹名称)

4) 将binding.node 文件添加到/node-modules/vendor/<operating system>/

5) 运行 gulp

【讨论】:

    【解决方案2】:

    要扩展 @dmfay 的答案,您应该安装节点 5(通过 nvm 或 tj 的 n)。

    但是,您可以在项目的 package.json 中包含它,使其依赖于节点 5。(在“引擎”属性下)

    【讨论】:

      【解决方案3】:

      如果您希望将其自动化,您只需在 gulp 任务中添加控制台命令以通过 nvm 使用所需的版本。 例如"nvm 安装 v5.0.0"

      【讨论】:

        【解决方案4】:

        nvm 非常有助于管理和切换多个版本的节点,包括您全局安装的包。

        【讨论】:

        • 感谢会调查它。希望有一些更简单的东西可以作为 npm 脚本或类似脚本运行。
        猜你喜欢
        • 2012-11-07
        • 1970-01-01
        • 2023-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-18
        • 2020-08-12
        • 2017-09-02
        相关资源
        最近更新 更多