【问题标题】:Upgrading node version throws node-sass error when trying to build尝试构建时升级节点版本会引发 node-sass 错误
【发布时间】:2021-09-29 09:57:09
【问题描述】:

我目前正在本地运行 Node v10.19.0 / Nextjs8 项目。我想进一步将 Next 版本升级到 11。我首先将节点本身的版本升级到 12.14.0(也许 12.20.1 更好?)我得到 2 个错误:

> Location: "/home/roma/project/.babelrc"
[ error ] ./styles/main.scss
Error: Missing binding /home/roma/project/node_modules/node-sass/vendor/linux-x64-72/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x

Found bindings for the following environments:
   - Linux 64-bit with Node.js 10.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
Error: Cannot find module '/home/roma/project/.next/build-manifest.json'
Require stack:
    - /home/roma/project/node_modules/next-server/dist/server/load-components.js
    - /home/roma/project/node_modules/next-server/dist/server/next-server.js
    - /home/roma/project/node_modules/next/dist/server/next-dev-server.js
    - /home/roma/project/node_modules/next/dist/server/next.js
    - /home/roma/project/server/server.ts

我知道我需要运行 npm rebuild node-sass 命令。

  1. 如果我需要恢复到旧版本的节点会出现问题吗?
  2. 如果确实出现此类问题,您是否需要执行所有相同的步骤?

目前我还没有输入这个命令,因为任何时候都可能需要回到旧版本并快速做一些工作来解决问题,所以我想澄清这两个问题。

感谢您的帮助,祝您有愉快的一天。

【问题讨论】:

    标签: node.js next.js node-sass


    【解决方案1】:

    如您所见,发生这种情况是因为您的环境在运行 npm install 后发生了变化。只需运行 npm rebuild node-sass 为您当前的环境构建绑定即可。

    请注意,如果出于任何原因需要切换回另一个 Node 版本,则需要再次重建。

    我使用该命令的次数太多了,几乎每隔一周。 根据我的经验和我的研究,没有太多可以防止这种情况发生的方法。这是 node-sass 和 node 版本的兼容性问题。

    如果重建命令挂起(我从来没有发生过,但它可以)你可以:

    • 在重建命令的末尾添加--force 标志或

    • 删除node_packages 文件夹并重新运行安装脚本

    我从来没有做过这些,但我读过有些人有。

    网站上似乎有更多类似问题的信息,比如这个: Issue using node-sass after updating NodeJS

    希望这会有所帮助。无法添加 cmets,所以我尽力给出了完整的答案。

    【讨论】:

    • 感谢您的详细解答。是的,我也读了很多关于这方面的文章,来自真实经验的意见对我来说很重要,特别是在节点版本的不断变化方面。我觉得你的回答很好,谢谢你的时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2020-06-08
    • 2018-05-08
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多